zoukankan      html  css  js  c++  java
  • 使用xml配置文件配置DataGridView的列信息

    项目需求:

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

          

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

    解决方法:

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

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

       

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

       T 是定义的强类型DataTable

    读取配置文件
     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> 格式

        

    初始化列
     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         }

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

  • 相关阅读:
    入门级科普 | ICO→STO→IEO,下一个会是IDO吗?
    去中心化金融(DeFi):一个新的金融科技革命
    kubernetes docker 查看站点访问权限问题
    Pycharm 插件中的git使用
    Selenium 中对于table的判断
    macOS 终端打开提示:zsh compinit: insecure directories
    Mac 删除开机选项
    pytest-BDD 的学习
    Gherkin学习笔记
    Cucumber入门之Gherkin
  • 原文地址:https://www.cnblogs.com/zhaobl/p/DataGridViewColumnConfig.html
Copyright © 2011-2022 走看看