在Asp.Net中使用AspNetPager進行分頁時,發現一個問題:
當通過查詢條件進行查詢後,對查詢結果進行翻頁操作時,查詢條件會丟失。
當修改UrlPaging屬性後(設定UrlPaging=“false") 問題解決,即:
<webdiyer:AspNetPager ID="AspNetPager" runat="server" Width="90%" UrlPaging="false" ShowPageIndexBox="Always" AlwaysShow="True" PageIndexBoxType="DropDownList" TextBeforePageIndexBox="轉到: " HorizontalAlign="Right" OnPageChanged="AspNetPager_PageChanged" EnableTheming="true" FirstPageText="首頁" LastPageText="尾頁" NextPageText="下一頁" PrevPageText="上一頁" CssClass="paginator"> </webdiyer:AspNetPager>
為什麼會這樣呢?
因為AspNetPager有兩種分頁方式:
1. PostBack方式,UrlPaging="false",預設按此方式。
PostBack方式用post替代get來隱式傳遞頁面,Url不會發生變化,Viewstate也不會被清空。
2. Url方式,UrlPaging=”true“。
按Url方式分頁時,可以通過把搜尋關鍵字加到Url引數中來實現搜尋。
Url方式分頁,每次翻頁Url都會發生改變,都是重新開啟頁面,控制元件的值和ViewState都會清空。