
如果你知道是哪个dataset比如adoquery1
直接
close
sql.text:='xxxxx'
open
就完了
如果dataset可能会变化,想写通用的
cxgrid有个child叫TableView(这个东西分好几种,具体看设置)这个是显示数据用的,IDE左边显示组件的treeview里能看到,或者在cxgrid右下角有带下划线的tableview名字可以选择
类似cxGrid1DBTableView1这样
它有个属性是 DataController,它有子属性DataSource,到这里就认识了吧
跟 *** 作其他dataset一样
举个例子:
cxGrid1有个cxGrid1DBTableView1
那就可以直接写
cxGrid1DBTableView1.DataController.DataSource.Dataset.close
cxGrid如果是静态添加列,可以把列的Properties设置为ComboBox,而现在是动态添加,代码如下:vartvC: TcxGridDBColumntvLIST: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控件, 双击, 在d窗中添加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。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)