2012-11-07 140 views
0

我正在使用asp.net 4.0網格視圖。我想使用分頁。 我正在使用SQL查詢處理分頁。我只得到記錄數,我想在我的網格中顯示。我想將記錄總數設置到我的網格中,以便我的網格根據記錄的總數顯示頁碼(例如1 2 3 .... 8)。我的網格應告訴我什麼是當前頁面被查看。 我無法根據我的總記錄數設置頁碼。 請幫我解決這個問題。 在此先感謝。網格視圖分頁

回答

1

鹽漬回整個結果集獲得尋呼可能不是你想要的方式是想。您應該真正擴展GridView控件並引入一個虛擬物件計數屬性。然後,您應該傳遞虛擬物品計數網格中所有記錄的計數。此外,您應該確保OnPageIndexChanging事件應該將當前頁面索引設置爲下一頁。

1

更好的方法我得到了這個,使用存儲過程並返回基於PageIndex和PageSize的數據。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
<Columns> 
    //your data 
</Columns> 
</asp:GridView> 

這說明分頁

<asp:Repeater ID="rptPager" runat="server"> 
<ItemTemplate> 
    <asp:LinkButton ID="lnkPage" runat="server" Text = '<%#Eval("Text") %>' CommandArgument = '<%# Eval("Value") %>' Enabled = '<%# Eval("Enabled") %>' OnClick = "Page_Changed"></asp:LinkButton> 
</ItemTemplate> 
</asp:Repeater> 

這一切都在這裏,你想要什麼:Custom Paging in ASP.Net GridView using SQL Server Stored Procedure

+0

嘿,我想通過使用擴展GridView它更清潔的方法,因爲分頁將由控件本身處理,但是,您的方法是一樣有效的。 –

+0

如果性能真的很重要,那麼還有另一種最好的方法,使用jQuery客戶端重複和添加分頁(相同的概念)。 http://encosia.com/use-jquery-and-aspnet-ajax-to-build-a-client-side-repeater/。 –

+0

是的,只需要確保完整的結果集不會被返回,並且每次只處理pagesize記錄集:) –