关于ExtAspNet的Grid的动态增加列的方法
2011-12-13 00:56
429 查看
动态列 ExtAspNet.BoundField 只能在Page_Init和Page_Load等方法中增加,而在有些地方,比如点击按钮后动态增加,就无法生效。
有个场景:查询时,用户选择需要的字段来显示,就涉及到动态列。
方法一:规避解决,查询结果直接弹出个页面,没有问题。
方法二:
(1) 在Page_Load方法中增加若干个隐藏列
/* 获得查询结果 */
DataSet ds = ....
注意,这里直接设置绑定列 HeaderText 无法生效。
(3)在查询后重新设置标题列
这里用了一个datatable来保存用户选择的字段设置条件等属性,你可以换成你保存用户选择字段列表。
OK.
有个场景:查询时,用户选择需要的字段来显示,就涉及到动态列。
方法一:规避解决,查询结果直接弹出个页面,没有问题。
方法二:
(1) 在Page_Load方法中增加若干个隐藏列
for (int i = 0; i < QUERY_GRIDVIEW_COLUMN_COUNT; i++) { ExtAspNet.BoundField boundField = new ExtAspNet.BoundField(); boundField.HeaderText = string.Format("第{0}列", i + 1); boundField.Hidden = true; gridQueryResult.Columns.Add(boundField); }(2) 在查询过程中设置绑定列对于的字段
/* 获得查询结果 */
DataSet ds = ....
foreach (DataColumn dataColumn in ds.Tables[0].Columns) { if (dataKeyNames.Contains(dataColumn.ColumnName)) { continue; } ExtAspNet.BoundField boundField = (ExtAspNet.BoundField)gridQueryResult.Columns[index]; if (!dataKeyNames.Contains(dataColumn.ColumnName)) { boundField.Hidden = false; } boundField.DataTooltipField = dataColumn.ColumnName; boundField.DataField = dataColumn.ColumnName; //boundField.HeaderText = dataColumn.Caption; index++; }
注意,这里直接设置绑定列 HeaderText 无法生效。
(3)在查询后重新设置标题列
/// <summary> /// 查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnQuery_Click(object sender, EventArgs e) { gridQueryResult.PageIndex = 0; LoadData(); if (DataFieldTable != null) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(@"var grid = Ext.getCmp('{0}'); var columnModel = grid.getColumnModel();", gridQueryResult.ClientID); for (int i = 0; i < DataFieldTable.Rows.Count; i++) { sb.AppendFormat("columnModel.setColumnHeader({0}, '{1}');", i + 1, DataFieldTable.Rows[i]["Alias"]); } ExtAspNet.PageContext.RegisterStartupScript(sb.ToString()); } }
这里用了一个datatable来保存用户选择的字段设置条件等属性,你可以换成你保存用户选择字段列表。
OK.
相关文章推荐
- 关于ExtAspNet的Grid的动态增加列的方法
- 关于 ExtAspNet 控件 Tree 嵌套在 Region Panel 内 OnNodeCommand 无响应的问题解决方法
- 关于ext中使用 Ext.grid.CheckboxSelectionModel作为选择框如何保存选中记录的解决方法。
- 关于jquery中动态增加select,事件无效的快速解决方法
- 关于jquery中动态增加select,事件无效的快速解决方法
- 服务器端包含提供了一种对现有HTML文档增加动态内容的方法
- 关于Ext.onReady的三种调用方法
- 一种可用于系统动态显示关于信息的方法
- Vue.js实现表格动态增加删除的方法(附源码下载)
- SSH+Ext左侧tree右侧grid,点击左侧tree节点右侧grid数据动态加载和分页问题
- 从action中获取的json无法显示在ext的grid中解决方法
- extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法
- ext 中grid的配置属性和方法解析
- asp.net ext treepanel 动态加载XML的实现方法
- 动态为Event增加处理函数的方法
- Ext formpanel 动态添加 表单 的一种实现方法
- ext中将tree中的数据拖拽到grid中,动态生成列
- ExtAspNet页面跳转的方法
- 关于extjs的Ext.MessageBox.prompt和非空验证方法
- 关于Linux下动态以及静态库的制作方法