簡體   English   中英

在gridview中刪除列並對其重新排序,並在回發中持久化

[英]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控件時,您將不再依賴默認datasourcedatasourceID 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM