PAIP.从DATATABLE动态生成表头

有时候,从数据库中得到的datatable列太多了,一一绑定到界面上的GRID太麻烦了,可以动态绑定..

/*
         * 从数据库生成的DATABLE列名为textbox1,textbox2,......
         * title为汉字表头,顺序与  datable 的列后缀(textboxids )顺序一一对应
         */
        int startAutoColumnPosition = 5;  //自动生成列开始位置..前边可以自定义固定列.
        string prefix = "textbox";   //databable里边列名前缀
        private void usermain_Load(object sender, EventArgs e)
        {
            DataTable dt = rec.query();
            this.dataGridView1.DataSource = dt;

//表格标头
            string title="比例,单重,供货时间,备注,合计(KG),最低重量,筋条数,送货时间1,合格数量1,重量1,结算单重1,送货时间2,合格数量2,重量2,结算单重2,送货时间3,合格数量3,重量3,结

算单重3,送货时间4,合格数量4,重量4,结算单重4,送货时间5,,合格数量5,重量5,结算单重5,送货时间6,合格数量6,重量6,结算单重6,送货时间7,,合格数量7,重量7,结算单重7,送货时间8,合格数量8,重

量8,结算单重8,送货时间9,,合格数量9,重量9,结算单重9,送货时间10,合格数量10,重量10,结算单重10";

//datable column 后缀
            string textboxids = "7,8,9,10,11,12,19,18,17,16,14,15,13,26,25, 24,23,21,22,20,55,57,56 ,48,33,29,32, 27,31,28,30, 41,40,36,39,34,38,35,37, 50,49,44,47,42,46,43,45";

setTitleOnDataView(title, textboxids);

}

private void setTitleOnDataView(string title, string textboxids)
        {

int ori=startAutoColumnPosition;
          
//循环生成表头.HeaderText
            foreach (DataGridViewTextBoxColumn item in this.dataGridView1.Columns)
            {
               
                String tltle=setColumnHeaderText(item.DataPropertyName, title, textboxids);
                if(!tltle.Equals("null"))
                {
                    item.HeaderText = tltle;
                    item.DisplayIndex=ori+2;
                  
                }

startAutoColumnPosition++;

}

//把不需要显示的列头,设置为隐藏
            foreach (DataGridViewTextBoxColumn item in this.dataGridView1.Columns)
            {
                if (item.HeaderText.ToLower().StartsWith("text"))
                    item.Visible = false;

}

}

//get ColumnHeaderText
        private string setColumnHeaderText(string DataPropertyName, string title, string textboxids)
        {
            string r = "";
            string[] ides = textboxids.Split(",".ToCharArray());
              string[] titlesArr = title.Split(",".ToCharArray());
            int i=0;
            foreach (string item in ides)
            {

string id = prefix + item;
              if(id.Equals(DataPropertyName.ToLower()))
              {

return titlesArr[i];
              }
              i++;
            }
            return "null";
        }

PAIP.从DATATABLE动态生成表头相关推荐

  1. ASP.Net Telerik RadGrid动态生成表头

    Telerik RadControlsForASP.NET.AJAX是一款很强大的第三方控件,RadGrid是里面用的最多的控件.在旧版本中,要想生成多行多列的表头,应该重写GridBenDept_I ...

  2. easyExcel动态生成表头

    之前的都是固定格式处理excel,这次是动态的导出excel,下边是处理表头的,主要就是把表头放到headList List<List<Object>> list = new ...

  3. element ui el-table动态生成表头(v-for/v-if)导致的高度塌陷(少一截)的解决办法

    只需要在vue的updated生命周期中加入强制刷新组件代码即可解决: 需要给el-table组件加上ref!!!!!! updated() {this.$refs['showData_table'] ...

  4. 基于Element组件下动态生成多级表头以及数据

    介绍 element是一套基于vue的组件,本文主要介绍如何根据后端传输数据来动态生成表格. 代码 html 利用vue里的for循环来动态生成表头,再利用if语句判断是否有二级表头,并将对应key赋 ...

  5. el-table 动态生成多级表头

    html代码: <el-tablev-loading="loading":data="orgTableData":header-cell-style=&q ...

  6. Day 189/200 前端Table 表头及列表内容动态生成

    1.需求 Table表格的表头,以及列表数据根据接口返回的数据动态生成列表. 2.分析 1)动态生成表头 中间的表头使用子组件的形式,根据返回来的数据,动态拼接生成列表的表头. 将左右两边的表头拼接生 ...

  7. vue 渲染JSON数据动态生成表格组件

    vue 通过渲染JSON数据动态生成表头及对应表格内容组件 <template><div id="viewDialog"><el-button typ ...

  8. extjs4动态生成多表头

    目前使用的方法,google了好久+自己研究出来的,通过json生成表头 效果图: View Code 1 Ext.onReady(function () { 2 //header也就是你应该从后台取 ...

  9. VUE之Vxe-table动态生成多级表头及后端返回数据的处理

    需求: 1.第一列为正常列: 2.第二列开始为动态生成列(根据接口返回数据生成): 3.最后一列为编辑列. 步骤: 写入动态html模板 <vxe-tableid="prdReques ...

  10. VUE之Vxe-table动态生成多级表头

    需求: 1.第一列为正常列: 2.第二列开始为动态生成列(根据接口返回数据生成): 3.最后一列为编辑列. 实现步骤: 模板中定义: <!-- 多级表头 --><vxe-tablei ...

最新文章

  1. dearpygui最新版教程
  2. 'avpicture_fill': 被声明为已否决
  3. mysql 重启io线程_MySQL IO线程及相关参数调优
  4. Golang program to implement Binary Tree
  5. 前端学习(2876):原生js模块化+弹幕的宽度和高度
  6. 【转】探索c#之Async、Await剖析
  7. linux mc服务器 mod_如何在linux搭建MC服务器
  8. 采用推理的方法认知单词、CBOW模型
  9. php 伪静态 获取当前页面路径_织梦移动适配PHP获取当前页面URL地址方法
  10. 经典面试题(7):下面的代码运行结果是什么么?
  11. 【SpringCloud】Spring cloud Alibaba Nacos 服务注册与配置中心
  12. asp.net 调用SmtpClient发送邮件(转)
  13. php 去除变态空格字符方法,空格trim不掉问题解决思路
  14. [转]上海新东方vs新东方,SEO实战
  15. IE FF css兼容
  16. 这周我加星(8-11)
  17. 安卓抓包工具、方式选择
  18. 4K TEST SEQUENCES 测试视频片段下载
  19. Python实现泛微OA云桥未授权任意文件读取
  20. Dbeaver在公司内网情况下进行编辑驱动

热门文章

  1. 中国科学院慈松:云计算如何可持续发展
  2. 华硕物联网机器人今年推出 开发进入最后阶段
  3. Java-经典排序算法(二)——快速排序
  4. HDU 4849 Wow! Such City!陕西邀请赛C(最短路)
  5. es6中的let声明变量与es5中的var声明变量的区别,局部变量与全局变量
  6. Java处理Json数据
  7. Extjs的文件上传问题
  8. Varnish 缓存服务器配置
  9. spring-第十六篇之AOP面向切面编程之Spring AOP
  10. 第五章 循环结构课后思考