[英]Remove and reorder columns in gridview and persisting it on postbacks
我有一个页面, 使用GridView可以显示记录。 现在,我允许用户通过更改列的顺序或添加从预定义的列列表中删除列来自定义GridView视图。 OnPagePrerender
事件我正在从GridView中删除所有单元格,并按照用户选择的顺序添加单元格。 它的工作正常,但当发生PostBack
时,它将引发异常,即
无法加载ViewState。 等等
因为现在这些单元格与保存在ViewState
的单元格不同。
我想要保留在PostBack
上对GridView所做的这些更改吗?
你要保存GridView
中(或数据记录) VIEWSTATE
并重新加载Gridview
只从 VIEWSTATE。
因此,换句话说,仅当数据需要更改时才查询数据库,但是您必须以gridview
可以显示数据 recordset
的方式来构造recordset
,即数据加载的方式 (即动态SQL),并且列顺序为需要。
然后将recordset
保存到viewstate
变量中,并在进行回发时在gridview
引用它。
我对行而不是列做了类似的事情,是的,当在该深度gridview
上操纵gridview
控件时,您将不再依赖默认datasource
或datasourceID
gridview
。
为此,您必须创建一个新的Gridview列顺序。
首先复制您的列。 第二,重新排列您的列。
var columns = GridView1.Columns.CloneFields(); // makes a copy of gridview columns
GridView1.Columns.Clear(); // remove all the columns
// now make any order for your gridview columns
GridView1.Columns.Add(columns[3]); // e.g. now your column 4 is placed at first position
GridView1.Columns.Add(columns[0]); // here column 1 is placed at second position
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.