我正在使用DataPager为我的ListView添加分页。在PageLoad上,使用查询字符串执行搜索,然后将结果添加到我用来填充ListView的DataSet。
DataPager本身非常基础,我只使用它:
<asp:DataPager ID="ListViewPager" PagedControlID="listViewResults" PageSize="10" runat="server" QueryStringField="page">
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" PreviousPageText="Previous" ShowFirstPageButton="false" ShowNextPageButton="false" ShowPreviousPageButton="true" />
<asp:NumericPagerField ButtonType="Link" />
<asp:NextPreviousPagerField ButtonType="Link" NextPageText="Next" ShowLastPageButton="false" ShowNextPageButton="true" ShowPreviousPageButton="false" />
</Fields>
</asp:DataPager>
但是,在页面之间切换时,结果加载速度非常慢。看到搜索本身是在PageLoad上执行的(如果是querystring!= null),每当我转到新页面时,它是否会重新执行搜索?如果是这样,有没有更好的方法来处理这个,所以页面加载更快?
答案 0 :(得分:2)
Page_Load
会在每次回发时运行,因此您应该使用if(!PostBack && querystring != null)
。此外,直接在数据库中对数据进行分页,而不是在代码中 - 它的速度要快得多。