2017-06-08 27 views
0

在ASP.NET Web窗體應用程序中有一個gridview,我需要添加一種方法來基於2列對行進行排序。我找到了一種使用DataView來做到這一點的方法。 所以從我原來的GridView我創建一個DataTable,然後我做的:在ASP.NET中使用隱藏列對datatable中的數據視圖排序

DataView dv = new DataView(dt); 
dv.Sort = "Column_1, Column_2"; 
gridView.DataSource = dv; 
gridView.DataBind(); 

現在我可以排序的數據視圖之後,我可以作爲一個數據源的數據視圖添加到GridView。這很好,除了我原來的GridView有一些設置爲visible = false的列。 完成此排序後,隱藏的列中的數據將被刪除。 有沒有人遇到過這個?當我從DataTable中創建DataView或者當我這樣做時,會發生這種情況嗎?我能做些什麼來保留隱藏列的值?

謝謝!

+0

我設法解決了這個問題,首先讓GridView列可見,然後再做所有其他需要排序的東西,最後我把GridView列放回不可見。這有效,但我更爲好奇,爲什麼會發生這種情況。我無法在網上找到任何相關信息。也許有更多經驗的人可以闡明一些看法。謝謝 ! – Cosmos24Magic

回答

0

之前排序,你必須設置列visible=false和排序後設置visible=true將更好地工作,下面的代碼進行排序:

DataView dv = new DataView(dt); 
dv.Sort = "Column_1, Column_2"; 
gridView.DataSource = dv; 
gridView.DataBind(); 

這個工作,你有沒有在Page_Load檢查IsPostBack

相關問題