2014-07-23 94 views
0

我想對我的gridView進行排序和分頁。Gridview排序和分頁。如何保持分頁?

我看到了幾個後,我嘗試這樣做:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 
    { 
     string sortExpression = e.SortExpression; 
     ViewState["SortExpression"] = sortExpression; 
     switch (e.SortExpression) 
     { 
      case "Debit": 
       if (GridViewSortDirection == SortDirection.Ascending) 
       { 
        GridViewSortDirection = SortDirection.Descending; 
        GridView1.AllowPaging = false; 
        GridView1.DataSource = getItems().OrderByDescending(x => x.Debit); 
        GridView1.DataBind();       
        GridView1.AllowPaging = true; 
       } 
       else 
       { 
        GridViewSortDirection = SortDirection.Ascending; 
        GridView1.AllowPaging = false; 
        GridView1.DataSource = getItems().OrderBy(x => x.Debit); 
        GridView1.DataBind();       
        GridView1.AllowPaging = true; 
       } 
       break; 
     } 
    } 

分選效果很好,但分頁在前看不見。綁定後,我將「AllowPaging」屬性設置爲true,但是我在一個頁面上擁有所有數據。爲什麼?

編輯:如果我刪除「AllowPaging」或在「Binding」之前設置爲true,我有一個例外:在System.Web.dll中發生類型'System.NotSupportedException'的異常,但未在用戶代碼中處理其他信息:數據源不支持服務器端數據分頁。

+0

爲什麼要關閉和打開尋呼?你不能隨時離開嗎? –

+0

我對我的網格有一個基本的分頁,當我排序時,我會關閉分頁,否則我有一個例外。 – Jayce

回答

0
GridView1.AllowPaging = false;      
    GridView1.AllowPaging = true; 

可能是您的問題的根源。

在這兩個IF & else聲明。

+0

當然,如果這需要在兩者上都添加,那麼它不需要在其中任何一個 – aleafonso

0

嘗試添加GridView1.AllowPaging = true;之前DataBind()

+0

我有一個例外:在System.Web.dll中發生類型'System.NotSupportedException'的異常,但未處理用戶代碼 附加信息:數據源不支持服務器端數據分頁。 – Jayce

+0

getItems()返回什麼? –

+0

這是一種在「RadioButtonList」和「Checkbox」之後恢復數據的方法。它返回一個我個人對象(View_1)的數組。 – Jayce