工作中经常用的的是第三发控件DevExpress,相信大家都知道它的强大功能,这次用到了TreeList做了一个权限的管理,发现TreeList非常好用,大家可以看它自带的 Demo就知道了,功能很多,这里我就把我用到的说出来,大家一起交流学习。
TreeList有一个KeyFieldName和ParentFieldName,这2个非常重要,只要构造一个DataTable赋值给 TreeList的DataSource,这个DataTable里面要有2列是必须的,因为这2列要赋给上面说的KeyFieldName和 ParentFieldName,先不说上面意思,树应该是从根节点递归、递归、一直往下递归到叶子,KeyFieldName和 ParentFieldName就起到这个作用。
1.如何绑定数据源到treelist:
using (SqlConnection sqlConn = new SqlConnection(Properties.Settings.Default.strCon))
{
string strSql = @"select id,flag ,类型名,描述,mkey,basecode from dbo.partType";
DataSet ds = SqlHelper.ExecuteDataset(sqlConn, CommandType.Text, strSql);
treeList1.DataSource = ds.Tables[0];//数据源
treeList1.KeyFieldName = "id";//ID列
treeList1.ParentFieldName = "flag";//父列
}
效果如图:
2.设置下拉样式 三角下拉改为“+ -”。
可以再Appearancek 中设置:
UserDefaultLookAndFell=falseUserWindowsXPTheme=true,
两个属性将默认值全改成相反的。 OK!
3.关于背景色和隔行换色设置:
在设计器里:Appearances--àProperties设置颜色。
Odd/Even Row Appearances中启用隔行变色功能。
属性里也有相应设置。optionsView中的enableAppearaceEvenRow
和enableAppearaceOddRow;
4.控制只读或可用:
OptionBehavior中的ReadOnly控制只读.Editable控制可用.
5. treeList1_MouseClick事件来找到点击的node
TreeListHitInfo hitInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
hitInfo.Node.Selected = true;
treeview1的鼠标点击事件(一般用aftenSelected即可)
TreeViewHitTestInfo mTVHit = treeView1.HitTest(e.X, e.Y);
treeNode tn=mTVHit.Node;
6. 如何获取treelist选中行数据(多行选中循环索引)
TreeListNode tln1= ct.treeList1.Selection[0];
string s= tln1["图纸版本号"].ToString ();
等价于 TreeListNode tln1 = ct.treeList1.FocusedNode;
利用cxTreeList1.FindNodeByText()可以查找TopVisibleNode
7.如何刷新treelist
重新把数据源加载一遍.
例如调用此方法.
8.如何刷新treelist数据源后,还让之前选中的选中.
9.如何获取treelist选中行的数据:
没有试出选中行的数据,但是可以得出选中行第n列的cell值。使用
ct.treeList1.Selection[0].GetValue ("图纸版本号")或者
ct.treeList1.Selection[0].GetDisplayText ("图纸版本号");
然后再从treelist.dataSource.select(“图纸版本号=”+图纸版本号);
如何获取datagridview选中行数据(多行选中循环索引)
string s= dataGridView1.SelectedRows[0].Cells["图纸版本号"].Value.ToString()