2013-03-24 56 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(); 

    } 
相關問題