【发布时间】:2013-06-19 13:07:13
【问题描述】:
当datasource 的listview 发生变化时,我遇到了datapager 的问题。
例子:
<asp:TextBox ID="filter" runat="server" />
<asp:ListView ID="listview" DataSourceID="datasource" runat="server">
<LayoutTemplate>
...
</LayoutTemplate>
<ItemTemplate>
...
</ItemTemplate>
</asp:ListView>
<asp:DataPager ID="datapager" PagedControlID="listview" runat="server">
<Fields>
<asp:NumericPagerField />
</Fields>
</asp:DataPager>
<asp:SqlDataSource ID="datasource" ConnectionString="..." PageSize="10"
SelectCommnad="SELECT * FROM [...] WHERE [...] LIKE @filter"
runat="server">
<SelectParameters>
<asp:ControlParameter Name="filter" ControlID="filter"
DbType="String" PropertyName="Text" />
</SelectParameters>
</asp:SqlDataSource>
Listview 包含让我们说 100 records 没有 filter。 Datapager 根据pagesize 显示pagenumbers。
现在如果我选择除1st 之外的任何页面,然后输入filter,它返回的页面少于当前选择的页面; datapager 停留在先前选择的页面上,listview 不显示任何记录,即使有一些记录。
知道为什么会这样吗?
【问题讨论】:
-
尝试
SetPagePropertiesifStartRowIndex>TotalRowCount但它不起作用。不知道如何解决这个问题。
标签: asp.net listview sqldatasource datapager