2013-03-24 47 views
0

请通过单击asp.net中的标题来帮助我对网格视图中的数据进行排序。我已经使用linq绑定数据到gridview。请帮帮我。通过在asp.net中单击标题对数据gridview进行排序

+0

一个小问题标题的谷歌会回答你。 Google返回了约192,000个结果(0.29秒).. :) – 2013-03-24 09:30:22

回答

1

你可以很容易地做到这一点。

因此可以说你有一个GridView,你可以在服务器端分配数据源。

,您可以利用GridView_Sorting事件,有些东西像如下:

首先,保存当前的应用排序的地方。因为,你需要知道,你是否需要升序或降序排序。像下面的东西。

public SortDirection CurrentSortDirection 
{ 
    get 
    { 
     if (ViewState["sortDirection"] == null) 
      ViewState["sortDirection"] = SortDirection.Ascending; 

     return (SortDirection) ViewState["sortDirection"];     
    } 
    set { ViewState["sortDirection"] = value; } 
} 

,然后使用该属性的sorting事件在GridView内:

protected void GridView_Sorting(object sender, GridViewSortEventArgs e) 
{ 
    if (CurrentSortDirection== SortDirection.Ascending) 
    { 
     CurrentSortDirection = SortDirection.Descending; 
     var myDataSource = GetDataThroughLinq() 
         .OrderByDescending(s=>s.Id) 
         .ToList(); 
     GridView1.DataSource = myDataSource; 
     GridView1.DataBind(); 
    } 
    else 
    { 
     CurrentSortDirection = SortDirection.Ascending; 
     var myDataSource = GetDataThroughLinq() 
         .OrderBy(s=>s.Id) 
         .ToList(); 
     GridView1.DataSource = myDataSource; 
     GridView1.DataBind(); 
    } 
} 
0

您可以直接选择数据源为GridView,它在GridView任务只是自动格式下方,选择datasouce后提供更多的选项,它包括分类,分页和选择,并通过点击每一个标题,你将得到的数据按照它排序

0

试试这个分类.....

protected void RadgvData_SortCommand(object sender, GridSortCommandEventArgs e) 
    { 
     GridTableView tableView = e.Item.OwnerTableView; 
     e.Canceled = true; 
     GridSortExpression expression = new GridSortExpression(); 
     expression.FieldName = e.SortExpression; 
     if (tableView.SortExpressions.Count == 0 || tableView.SortExpressions[0].FieldName != e.SortExpression) 
     { 
      expression.SortOrder = GridSortOrder.Descending; 
     } 
     else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Descending) 
     { 
      expression.SortOrder = GridSortOrder.Ascending; 
     } 
     else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Ascending) 
     { 
      expression.SortOrder = GridSortOrder.Descending; 
     } 

     tableView.SortExpressions.AddSortExpression(expression); 
     RadgvData.Rebind(); 

    } 
相关问题