PAIP.从DATATABLE动态生成表头
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动态生成表头相关推荐
- ASP.Net Telerik RadGrid动态生成表头
Telerik RadControlsForASP.NET.AJAX是一款很强大的第三方控件,RadGrid是里面用的最多的控件.在旧版本中,要想生成多行多列的表头,应该重写GridBenDept_I ...
- easyExcel动态生成表头
之前的都是固定格式处理excel,这次是动态的导出excel,下边是处理表头的,主要就是把表头放到headList List<List<Object>> list = new ...
- element ui el-table动态生成表头(v-for/v-if)导致的高度塌陷(少一截)的解决办法
只需要在vue的updated生命周期中加入强制刷新组件代码即可解决: 需要给el-table组件加上ref!!!!!! updated() {this.$refs['showData_table'] ...
- 基于Element组件下动态生成多级表头以及数据
介绍 element是一套基于vue的组件,本文主要介绍如何根据后端传输数据来动态生成表格. 代码 html 利用vue里的for循环来动态生成表头,再利用if语句判断是否有二级表头,并将对应key赋 ...
- el-table 动态生成多级表头
html代码: <el-tablev-loading="loading":data="orgTableData":header-cell-style=&q ...
- Day 189/200 前端Table 表头及列表内容动态生成
1.需求 Table表格的表头,以及列表数据根据接口返回的数据动态生成列表. 2.分析 1)动态生成表头 中间的表头使用子组件的形式,根据返回来的数据,动态拼接生成列表的表头. 将左右两边的表头拼接生 ...
- vue 渲染JSON数据动态生成表格组件
vue 通过渲染JSON数据动态生成表头及对应表格内容组件 <template><div id="viewDialog"><el-button typ ...
- extjs4动态生成多表头
目前使用的方法,google了好久+自己研究出来的,通过json生成表头 效果图: View Code 1 Ext.onReady(function () { 2 //header也就是你应该从后台取 ...
- VUE之Vxe-table动态生成多级表头及后端返回数据的处理
需求: 1.第一列为正常列: 2.第二列开始为动态生成列(根据接口返回数据生成): 3.最后一列为编辑列. 步骤: 写入动态html模板 <vxe-tableid="prdReques ...
- VUE之Vxe-table动态生成多级表头
需求: 1.第一列为正常列: 2.第二列开始为动态生成列(根据接口返回数据生成): 3.最后一列为编辑列. 实现步骤: 模板中定义: <!-- 多级表头 --><vxe-tablei ...
最新文章
- dearpygui最新版教程
- 'avpicture_fill': 被声明为已否决
- mysql 重启io线程_MySQL IO线程及相关参数调优
- Golang program to implement Binary Tree
- 前端学习(2876):原生js模块化+弹幕的宽度和高度
- 【转】探索c#之Async、Await剖析
- linux mc服务器 mod_如何在linux搭建MC服务器
- 采用推理的方法认知单词、CBOW模型
- php 伪静态 获取当前页面路径_织梦移动适配PHP获取当前页面URL地址方法
- 经典面试题(7):下面的代码运行结果是什么么?
- 【SpringCloud】Spring cloud Alibaba Nacos 服务注册与配置中心
- asp.net 调用SmtpClient发送邮件(转)
- php 去除变态空格字符方法,空格trim不掉问题解决思路
- [转]上海新东方vs新东方,SEO实战
- IE FF css兼容
- 这周我加星(8-11)
- 安卓抓包工具、方式选择
- 4K TEST SEQUENCES 测试视频片段下载
- Python实现泛微OA云桥未授权任意文件读取
- Dbeaver在公司内网情况下进行编辑驱动