XraTreeList的常用方法
1,数据源的绑定
DataSet ds =new DataSet();
da.Fill(ds, "sendinfo");
con.Close();
//treeList1.OptionsBehavior.PopulateServiceColumns= true;
this.treeList1.DataSource= ds.Tables["sendinfo"];
//this.treeList1.PopulateColumns();
this.treeList1.KeyFieldName= "cid";
this.treeList1.ParentFieldName = "parent_cid";
2 父子节点连动
private void treeList1_AfterCheckNode(object sender, NodeEventArgs e){
SetCheckedChildNodes(e.Node,e.Node.CheckState);
SetCheckedParentNodes(e.Node,e.Node.CheckState);
}
privatevoid treeList1_BeforeCheckNode(object sender, CheckNodeEventArgse) {
e.State = (e.PrevState == CheckState.Checked ? CheckState.Unchecked: CheckState.Checked);
}
privatevoid SetCheckedChildNodes(TreeListNode node, CheckStatecheck) {
for(int i = 0; i < node.Nodes.Count; i++) {
node.Nodes[i].CheckState =check;
SetCheckedChildNodes(node.Nodes[i], check);
}
}
privatevoid SetCheckedParentNodes(TreeListNode node, CheckStatecheck) {
if(node.ParentNode!= null) {
boolb = false;
CheckStatestate;
for(int i = 0; i < node.ParentNode.Nodes.Count; i++) {
state = (CheckState)node.ParentNode.Nodes[i].CheckState;
if(!check.Equals(state)){
b = !b;
break;
}
}
node.ParentNode.CheckState = b? CheckState.Indeterminate : check;
SetCheckedParentNodes(node.ParentNode, check);
}
}
3 获取当前选中的所有子节点
private void button1_Click(objectsender, EventArgs e)
{
//ArrayListalist = new ArrayList();
//intincount = treeList1.Nodes.Count - 1;
//for(int i = incount; incount >= 0; i--)
//{
// if (treeList1.Nodes[i].CheckState ==CheckState.Checked)
// alist.Add(treeList1.Nodes[i].GetDisplayText("name"));
// alist.Add(treeList1.Nodes[i].GetValue("name"));
// //qtyList.Add(CurTmpNode.GetValue("DataObject"))
//}
// //ArrayList selectedNodes = newArrayList();
// //selectChildren(treeList1.Nodes[0].Nodes[0], selectedNodes);
// //treeList1.Selection.Set(selectedNodes);
// //selectedNodes.Add("1");
//if(alist[0] != null)
// textBox1.Text = alist[0].ToString();
if(treeList1.Nodes.Count > 0)
{
foreach(TreeListNode root intreeList1.Nodes)
{
// GetCheckedOfficeID(root);
textBox1.Text +=GetCheckedOfficeID(root);
}
}
}
privatestring GetCheckedOfficeID(TreeListNode root)
{
stringvalue="";
foreach(TreeListNode node inroot.Nodes)
{
if(node.Nodes.Count==0)
{
if(node.CheckState == CheckState.Checked)
{
DataRowView drv = treeList1.GetDataRecordByNode(node) as DataRowView;
if (drv != null)
{
value += drv["name"].ToString()+" ";
}
}
}
GetCheckedOfficeID(node);
}
returnvalue;
}