使用xml配置文件配置DataGridView的列信息

项目需求:

     在设备管理中可以管理多类设备,每类设备的属性信息都不一样。如:

      

  故障和LTU设备的列信息是不一样的

解决方法:

1.定义强类型的列配置信息,并存储在xml文件中

   其中 PropertyName 对应List<T>中T的属性名称, PropertyText 是列名称 Visibled 是否显示

   

 

2.在项目启动时读取到缓存中

   T 是定义的强类型DataTable

ExpandedBlockStart.gif 读取配置文件
 1     ///   <summary>
 2           ///  读取配置文件
 3           ///   </summary>
 4           ///   <param name="fileName"></param>
 5           ///   <param name="tableName"></param>
 6           ///   <returns></returns>
 7           public   static  T GetConfigDT < T > ( string  fileName,  string  tableName)  where  T : DataTable,  new ()
 8          {
 9              T configDt  =   new  T();
10              configDt.TableName  =  tableName;
11              configDt.ReadXml(fileName);
12               return  configDt;
13          }

 

3. 加载DataGridView数据,首先初始化列信息,然后设置数据源

               this.dataGridViewX_终端.InitColumn("DEV_LTU");  //初始化列
                            this.dataGridViewX_终端.DataSource = DevTableAction.Instance.SelectLTU(); //读取数据源 List<t> 格式

    

ExpandedBlockStart.gif 初始化列
 1           ///   <summary>
 2           ///  初始化列
 3           ///   </summary>
 4           ///   <param name="dataGridView"></param>
 5           ///   <param name="dt"></param>
 6           public   static   void  InitColumn( this  DevComponents.DotNetBar.Controls.DataGridViewX dataGridView,  string  tableName)
 7          {
 8               if  (ColumnConfigHelper.ColumnConfigDS.Tables.Contains(tableName))
 9              {
10                  ColumnConfigDS.ColumnConfigDataTable dt  =  ColumnConfigHelper.ColumnConfigDS.Tables[tableName]  as  ColumnConfigDS.ColumnConfigDataTable;
11                  dataGridView.Columns.Clear();
12                   if  (dt  !=   null )
13                  {
14 
15                      dataGridView.AutoGenerateColumns  =   false ;
16 
17                      List < DataGridViewColumn >  columnList  =   new  List < DataGridViewColumn > ();
18                       foreach  (ColumnConfigDS.ColumnConfigRow dr  in  dt.Rows)
19                      {
20                           if  (dr.Visibled  ==   false )
21                               continue ;
22                          DataGridViewTextBoxColumn column  =   new  DataGridViewTextBoxColumn();
23                          column.DataPropertyName  =  dr.PropertyName;
24                          column.HeaderText  =  dr.PropertyText;
25                           if  (dr.Width  <   0 )
26                              column.AutoSizeMode  =  DataGridViewAutoSizeColumnMode.Fill;
27                           else
28                              column.Width  =  dr.Width;
29                          columnList.Add(column);
30                      }
31                      dataGridView.Columns.AddRange(columnList.ToArray());
32                  }
33              }
34               else
35              {
36                  MessageBox.Show( " 不存在表 "   +  tableName  +   " 的配置文件 " );
37              }
38          }

 

好久没写过随笔了,老是学习别人的,心里愧疚啊 呵呵 。

 

 

 

 

转载于:https://www.cnblogs.com/zhaobl/archive/2011/04/16/DataGridViewColumnConfig.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值