1

标准 ASP.NET Gridview 是否允许用户随意重新排序列?

如果是这样,我该如何实现这个功能?谢谢。

示例:我的 gridview 有 3 列 A、B 和 C。用户 1 喜欢将其排列为 B、C、A;用户 2 喜欢 C、A、B 等。如果支持此功能,我希望用户能够将列标题拖到他想要的位置。

4

3 回答 3

2

该标准ASP.NET Gridview不支持列排序,除非您往返于服务器并修改您的数据源。

您必须自己实现该功能或考虑使用第三方框架,例如Telerik's RadControls for ASP.NET AJAX. 在此处查看一个工作示例。

于 2012-12-19T07:31:53.263 回答
1

警告:我没有运行这个,但是这个博客指的是在 page_init 上对你的数据表的列(大概是网格视图的数据源)进行排序,并且绑定应该处理网格视图列的排序......现在如果你想这样做全部异步然后我认为这只是一个更长的对话

于 2012-12-19T07:38:18.387 回答
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); 

现在您已经根据用户选择创建了数据表,并将该数据表绑定到网格视图,如下所示:

gridview.DataScource = table1 ;
gridview.DataBind();
于 2012-12-19T09:05:11.487 回答