cxGrid如何动态添加一个列,并把该列设置为有下
展开全部
cxGrid如果是静态添加列,可以把列的Properties设置为ComboBox,而现在是动态添加,代码如下:vartvC: TcxGridDBColumn;
tvLIST:TcxGridDBTableView;
for i:=0 to High(ColName) dobegintvC:=tvLIST.CreateColumn;
tvC.Name:=ColName[i];
tvC.Caption:=dm.qry.FieldByName('ColCaption').AsString;
cxGrid delphi 1 使用TcxEditRepository控件, 增加一个combobox(如名称为cxcbb), 做好设置
2 绑定列 tvC.Properties := cxcbb.Properties;
工具栏中拖一个TcxEditRepository控件, 双击, 在弹窗中添加combobox(如名称为cxcbb, 设置方法和普通combobox一样)
2 绑定列 tvC.Properties := cxcbb.Properties;
我的实例名是cxERCBB1,静态添加了items进行测试,代码:begintvC:=tvLIST.CreateColumn;
tvC.Name:=ColName[i];
tvC.Caption:=dm.qry.FieldByName('ColCaption').AsString;
tvC.DataBinding.FieldName:=ColName[i];
留邮箱, 我给你个示例
能否顺便问一个问题:
cxGrid绑定ClientDataSet,现在我需要在每次编辑完一个单元格,就对该行内容进行自动更新。例如我在“负责人”字段输入“张三”,当离开该字段时(无论是否离开该行),就自动检索,并在该行的“邮箱”字段填入张三的邮箱。
我用cxGridDBTreeView的onEditChanged,发现不行,在cxGrid的Edit内容提交给ClientDataSet之前就运行了,而代码是从ClientDataSet的字段中取值的,所以取不到值,而且当运行过代码后,cxGridDBTreeView的修改内容也无法提交给ClientDataSet。
tvLIST:TcxGridDBTableView;
for i:=0 to High(ColName) dobegintvC:=tvLIST.CreateColumn;
tvC.Name:=ColName[i];
tvC.Caption:=dm.qry.FieldByName('ColCaption').AsString;
cxGrid delphi 1 使用TcxEditRepository控件, 增加一个combobox(如名称为cxcbb), 做好设置
2 绑定列 tvC.Properties := cxcbb.Properties;
工具栏中拖一个TcxEditRepository控件, 双击, 在弹窗中添加combobox(如名称为cxcbb, 设置方法和普通combobox一样)
2 绑定列 tvC.Properties := cxcbb.Properties;
我的实例名是cxERCBB1,静态添加了items进行测试,代码:begintvC:=tvLIST.CreateColumn;
tvC.Name:=ColName[i];
tvC.Caption:=dm.qry.FieldByName('ColCaption').AsString;
tvC.DataBinding.FieldName:=ColName[i];
留邮箱, 我给你个示例
能否顺便问一个问题:
cxGrid绑定ClientDataSet,现在我需要在每次编辑完一个单元格,就对该行内容进行自动更新。例如我在“负责人”字段输入“张三”,当离开该字段时(无论是否离开该行),就自动检索,并在该行的“邮箱”字段填入张三的邮箱。
我用cxGridDBTreeView的onEditChanged,发现不行,在cxGrid的Edit内容提交给ClientDataSet之前就运行了,而代码是从ClientDataSet的字段中取值的,所以取不到值,而且当运行过代码后,cxGridDBTreeView的修改内容也无法提交给ClientDataSet。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询