2016-02-09 144 views
0

我試圖使用asp:GridView的內置分頁功能,但似乎無法使模式設置爲NumericFirstLast時,「最後一頁」按鈕工作。下面的代碼示例:ASP.NET GridView分頁 - 處理最後一頁按鈕

<asp:GridView ID="GridView1" runat="server" AllowSorting="true" AllowPaging="true" 
    PagerSettings-Mode="NumericFirstLast" PageSize="15" 
    OnPageIndexChanging="GridView1_PageIndexChanging"> 
    <%-- Column Definitions --%> 
</asp:GridView> 

// C# Behind 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     LoadGrid(); 
    } 
} 

public void LoadGrid() 
{ 
    // Assign DataSource 
    GridView1.DataBind(); 
} 

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    LoadGrid(); 
} 

發生了什麼事被點擊尋呼機e.NewPageIndex當最後一個按鈕是持有的值爲-1,這意味着分配會拋出異常。但是,索引更改事件期間的GridView1.PageCount是0,所以我不能使用它來設置頁面索引的計數 - 1.對於此代碼正在發生什麼或爲什麼我從事件參數中收到-1的任何建議?

+0

''e.PageIndex = Int32.MaxValue;'' –

+0

您可能還想看看:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.pagersettings。模式(v = vs.110).aspx –

+0

那麼,使用'Int32.MaxValue'絕對奏效!但我看不到規定MSDN文檔中的任何原因,如果你使用這項工作 – Bwolfing

回答

0

嗯,我無法解釋爲什麼,也沒有找到MSDN文檔中的答案,但作者Ehsan建議在評論上述內容,當e.NewPageIndex == -1如果設置GridView1.PageIndexInt32.MaxValue它迫使格到最後一頁。

如果有人發現爲什麼/如何工作的文檔,請發表評論!