我有一个来自TMS的组件名为AdvCheckTreeView,其中treeview的每个节点都有一个复选框,就像附加工具面板中的CheckListBox一样。现在,我的问题是如何获得每个节点的检查状态并保存到数据库中。
假设这是一个Checktreeview,它有一个treeview和复选框:
PIS00
|__PIS001
| |__PIS00011
| |__PIS00012
|
|__PIS002
| |__PIS00021
|现在,我想获取每个数据的检查状态,并将其抛到各自的Datafield中。例如。
PIS00 - Datafield/Name : DBPIS00
PIS001 - Datafield/NAme : DBPIS001如果我检查PIS001,那么它返回一个布尔结果'True‘,如果不是,它将变成'false’,它将保存数据库中每个节点或项目的布尔结果--不管是否检查过。
这有可能吗?
如果我使用DBCheckbox,我知道如何在数据库中保存布尔值。我只是不知道如何分配数据字段,如果它是在treeview与复选框,因为它没有数据源。
发布于 2014-10-23 09:40:53
由于这不是一个数据感知控件,因此您必须手动遍历并根据节点的状态设置每个字段。从本质上说,这与您最初填充treeview时所做的相反。
var
I : integer;
lNode : TTreeNode;
begin
for I := 0 to advchecktreeview1.Items.Count - 1 do
begin
lNode := AdvCheckTreeView1.Items[I];
MyQuery.FieldByName('RelevantField').AsBoolean := AdvCheckTreeView1.Checked[lNode];
end;
end; 或者,使用相关的Node单击事件单独设置字段。
https://stackoverflow.com/questions/26503894
复制相似问题