zoukankan      html  css  js  c++  java
  • Devexpress TreeList

    [一篮饭特稀原创,转载请注明出处http://www.cnblogs.com/wanghafan/archive/2012/02/09/2344253.html]

    --Devexpress TreeList 判断空

    View Code
     1 repositoryItemTextEdit_费用名称是TreeList的某一列:
    2
    3 /// 验证不为空_WHF_111201
    4
    5 /// </summary>
    6
    7 /// <param name="sender"></param>
    8
    9 /// <param name="e"></param>
    10
    11 private void repositoryItemTextEdit_费用名称_Validating(object sender, CancelEventArgs e)
    12
    13 {
    14
    15 if (sender != null)
    16
    17 {
    18
    19 DevExpress.XtraEditors.TextEdit txt = sender as DevExpress.XtraEditors.TextEdit;
    20
    21 if (txt != null)
    22
    23 {
    24
    25 if (string.IsNullOrEmpty(txt.Text))
    26
    27 e.Cancel = true;
    28
    29 }
    30
    31 }
    32
    33 }

    --Devexpress TreeList 绑定 方式 速度 优化 

    View Code
     1 首先考虑代码中的字符串比较是否使用到 "==" 符号,该符号在string的比较中非常耗性能,如果存在则需要全部修改成 "Equal()"
    2
    3 按照如上修改后一般速度有显著飞跃,如果还是很卡,参照如下方法:
    4
    5 Devexrepss Treelist 常用绑定方式有两种:
    6
    7 1.直接treeList.DataSource=dt;
    8
    9 2.使用AppendNode逐条添加
    10
    11 优缺点:
    12
    13 1.绑定方便,但是速度很慢,特别表现在最大化最小化和关闭的时候,巨卡无比
    14
    15 2.绑定复杂,但是速度很快,推荐使用
    16
    17 下面贴出速度较快的第二种参考代码:
    18
    19 TreeListNode parentNode = null;
    20 TreeListNode childNode = null;
    21
    22 treeList.BeginUnboundLoad();
    23 treeList.ClearNodes();
    24
    25 DataView treeDv = dt_F_表二费用表.DefaultView;
    26 DataTable parentDt = null;
    27 DataTable childDt = null;
    28 parentDt = treeDv.ToTable();
    29 foreach (DataRow parentDr in parentDt.Rows)
    30 {
    31 parentNode = this.treeList.AppendNode(new object[] { parentDr["IID"], parentDr["上级费用ID"] }, 0);
    32
    33 treeDv = new DataView(dt_F_表二费用表);
    34 treeDv.RowFilter = "上级费用ID='" + parentDr["IID"].ToString() + "'";
    35 childDt = treeDv.ToTable();
    36 foreach (DataRow childDr in childDt.Rows)
    37 {
    38 childNode = this.treeList.AppendNode(new object[] { childDr["IID"], childDr["上级费用ID"] }, parentNode);
    39 }
    40 }
    41
    42 treeList.EndUnboundLoad();
    43 treeList.ExpandAll();

    --Devexpress TreeList 删除 

    View Code
     1  treeList_Project是TreeList,无论点击3级节点的某个节点,都可以把根节点一起删除
    2
    3 private void btn_RemoveProject_Click(object sender, EventArgs e)
    4 {
    5 if (treeList_Project.FocusedNode == null)
    6 return;
    7 TreeListNode keyNode=null;
    8 switch (treeList_Project.FocusedNode.Level)
    9 {
    10 case 0:
    11 keyNode = treeList_Project.FocusedNode;
    12 break;
    13 case 1:
    14 keyNode = treeList_Project.FocusedNode.ParentNode;
    15 break;
    16 case 2:
    17 keyNode = treeList_Project.FocusedNode.ParentNode.ParentNode;
    18 break;
    19 }
    20 treeList_Project.Nodes.Remove(keyNode);
    21 }

    --Devexpress TreeList 绑定后 锁定 绑定前 行

    View Code
    1  int currFocusedRow = treeList_left.GetNodeIndex(treeList_left.FocusedNode);
    2
    3 //--绑定Binding刷新treeList
    4
    5 treeList_left.FocusedNode = treeList_left.GetNodeByVisibleIndex(currFocusedRow);

    --Devexpress TreeList Check一二级可编辑其他级不可编辑

    View Code
     1 代码界面:
     2 private void treeList_CustomNodeCellEdit(object sender, DevExpress.XtraTreeList.GetCustomNodeCellEditEventArgs e)
     3           {
     4               if (e.Node.Level == 0 || e.Node.Level == 1 || e.Node.Level == 2)
     5               {
     6                   if (e.Column.FieldName == "ItGet")
     7                   {
     8                       e.RepositoryItem = repositoryItemCheckEdit_ItGet_0;                    
     9                   }
    10                   else
    11                   {
    12                       e.RepositoryItem = repositoryItemTextEdit_ReadOnly;
    13                   }
    14               }
    15               else
    16               {
    17                   if (e.Column.FieldName == "ItGet")
    18                   {
    19                       e.RepositoryItem = repositoryItemCheckEdit_ItGet_1;                    
    20                   }
    21               }
    22          }
    23   
    24 设计页面:
    25 
    26   this.repositoryItemCheckEdit_ItGet_1.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Standard;
    27   
    28   this.repositoryItemCheckEdit_ItGet_0.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.UserDefined;
    29   this.repositoryItemCheckEdit_ItGet_0.ReadOnly = true;
    30   this.repositoryItemCheckEdit_ItGet_0.AllowFocused = false;
  • 相关阅读:
    电脑桌面图标不显示图案变成白色图标该怎么办?
    行动上的巨人养成指南
    荣耀MagicBook Pro 2020款对比2019款做了哪些升级
    P8 function template ,函数模板
    MATLAB中imfill()函数
    MagicBook Pro 2020锐龙版
    P7. class template, 类模板,模板类
    6. namespace经验谈
    macbook pro2020参数
    MATLAB取整
  • 原文地址:https://www.cnblogs.com/wanghafan/p/2344253.html
Copyright © 2011-2022 走看看