标准ASP.NET Gridview是否允许用户随意重新排序列?
如果是,我该如何实现此功能?感谢。
示例:我的gridview有3列A,B和C.用户1喜欢将它排列为B,C,A;用户2喜欢C,A,B等。如果支持此功能,我希望用户能够将列标题拖动到所需位置。
答案 0 :(得分:2)
标准ASP.NET Gridview
不支持列排序,除非您往返服务器并修改数据源。
您必须自己实施该功能或考虑第三方框架,例如 Telerik's RadControls for ASP.NET AJAX
。请参阅工作示例here。
答案 1 :(得分:1)
警告:我没有运行它,但是this blog指的是在page_init上排序数据表的列(可能是网格视图的数据源),绑定应该处理网格视图列的排序...现在如果你想把所有这些都做为异步,那么我认为这只是一个较长的对话
答案 2 :(得分: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();