1.treelist添加節點方法;
方法一:使用資料源方式;
設定列名的顯示列名稱和顯示資料在資料源清單中的字段名稱;設定如下,列可以在treelist的 collection中設定,也可以在代碼裡自己添加;列設定較多選擇,一般如果列不變化,自己在collention中設定比較全面;
列名1.Caption = "部門名稱";
列名1.FieldName = "DEPARTMENTNAME";
treelist.DataSource = allDeparmentList;
方法二:手動循環添加節點;
列設定如上:
TreeListNode roleNode = trRole.AppendNode(new object[] { role.ROLENAME, role.ROLEID }, departNode);
roleNode.Tag = role;
roleNode.StateImageIndex = 1;
tag一般設定為模型資料,StateImageIndex 為添加節點前面顯示的圖示位置,圖示清單在treelist.stateImageList設定,添加imagelist即可;
這樣的設定方法比較靈活,StateImageIndex 還可以用來差別節點級别(不使用圖示imagelist時也可以使用);
2.修改節點值
node.setvalue(index,value);
3.節點選擇的排序
在顯示較多節點時,一般對子節點進行排序;
treelist.selection表示選擇的節點的集合;設定節點可以多選,在屬性OptionsSelection裡MultiSelect=true;即可;
treelist.selection.indexof(選中的node)表示該節點是第幾個被選中的,不是按照node的清單順序走,而是根據選中的前後順序;
treelist.nodes.indexof(node)表示的是所有節點的順序,按前後順序走的;
在排序的時候,一般要求不改變選中的node的前後順序,而使用者選擇時不一定排前後順序來選擇;是以,我們對選中的node作一個排序,再進行到頂或到底端的設定;(如果隻是向上一行,向下一行,不到頂或底的設定,直接設定選中的node的treelist.setnodeindexof( treelist.nodes.indexof(node)加或減1)即可);
List<TreeListNode> sortListNodes = new List<TreeListNode>();
foreach (TreeListNode node in treelist.Nodes)
{
if (tlData.Selection.Contains(node))
sortListNodes.Add(node);
}
//這裡是設定選中的節點到頂端,如果是到底端,要從i=0開始;
for (int i = sortListNodes.Count - 1; i >= 0; i--)
{
treelist.SetNodeIndex(sortListNodes[i], 0);
}