1.Datasource (动态)绑定: 优点,绑定数据源非常简单,而且更新节点非常方便,直接更新数据库,然后刷新就可以了,缺点:无论是展开节点,还是修改节点内容:非常卡!非常卡!非常卡!
treeList1.KeyFieldName = "p_id"; //指定主键id
treeList1.ParentFieldName = "p_parentid";//指定父键id
treeList1.DataSource = MainList;
treeList1.RefreshDataSource();
2.AppendNode(静态)添加节点:优点,数据是静态的,不管你做什么操作都很快,缺点:修改添加删除都需要手动写代码删除,比较麻烦;
private void BindData() //绑定一级节点
{
foreach (var a in MainList.Where(w => w.p_parentid.Equals("")))
{
TreeListNode tree = this.treeList1.AppendNode(new object[]
{
a.p_id,
a.p_title,
a.p_Stime,
a.p_Etime,
a.p_CompleteTime,
a.p_LastTime,
a.p_implementStaff,
a.p_Progress,
a.p_img,
null,
a.p_file,
null,
null,
a.p_remark,
a.p_Index
}, null);
BindChildData(tree, a.p_id);
}
}
///绑定所有子节点
private void BindChildData(TreeListNode node, string p_id)
{
foreach (var a in MainList.Where(w => w.p_parentid.Equals(p_id)))
{
TreeListNode GetNode = node.TreeList.AppendNode(new object[]
{
a.p_id,
a.p_title,
a.p_Stime,
a.p_Etime,
a.p_CompleteTime,
a.p_LastTime,
a.p_implementStaff,
a.p_Progress,
a.p_img,
null,
a.p_file,
null,
null,
a.p_remark,
a.p_Index
}, node);
BindChildData(GetNode, a.p_id);
}
}