2012-12-19 64 views
1

標準ASP.NET Gridview是否允許用戶隨意重新排列列?ASP.NET:如何允許用戶對gridview列進行重新排序?

如果是這樣,我該如何實現這個功能?謝謝。

實施例:我的GridView有3列A,B和C.用戶1喜歡它被佈置爲B,C,A;用戶2喜歡C,A,B等。如果支持該功能,我希望用戶能夠將列標題拖動到所需的位置。

+0

這裏有一個重新排序的GridView Asp.net JQuery的文章:GridView控件行的拖放重新排序http://codepedia.info/2015/03/reorder-gridview-asp-net-jquery-drag-drop -reorder-的-gridview的-行/ –

回答

2

標準ASP.NET Gridview不支持列排序,除非你做一個往返到服務器並修改您的數據源。

您必須自己實施該功能或考慮第三方框架,例如Telerik's RadControls for ASP.NET AJAX。看一個工作示例here

+0

http://stackoverflow.com/questions/8976153/how-to-reorder-columns-in-gridview-dynamically – GeorgesD

1

注意:我沒有運行這個,但this blog是指在page_init上排序數據表的列(可能是網格視圖的數據源),並且綁定應該處理網格視圖列順序...現在,如果你想要做這一切異步那麼它只是一個較長的談話,我認爲

1

把你的數據源,你要綁定到網格視圖然後,創建新的數據表根據用戶列順序一樣

數據表
DataTable SourceTable = ds.Table[0]; 
DataTable table1 = new DataTable("Employee"); 

\\ take user choice order in array and use loop to create column as per array 
\\ Below is order your column you can also change this order according to your login 
\\ put your login here to arrange column order 

// this loop will create column according to user choice 

foreach(string row In USerChoiceArray) 
{ 
    table1.Columns.Add(row); 
} 



table1.Rows.Add(column value from source data table, 1); 
table1.Rows.Add(column value from source data table, 2); 

現在你已經根據用戶的選擇創建的數據表,並將該數據表綁定到網格視圖FO llows:

gridview.DataScource = table1 ; 
gridview.DataBind(); 
相關問題