[英]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.