我有一个嵌套在网格视图中的列表视图。
我正在尝试在列表视图上进行分页。 我以为它会显示分页控件,然后正常地翻阅它们。
它确实显示控件,并将显示的结果集限制为适当的记录数(pageSize),但是当我单击分页控件时,网格会刷新,并且嵌套列表视图没有任何变化(它仍然在第一页上)。
我尝试将列表视图嵌套在更新面板内,但行为仍然存在。 gridview 本身已经在 updatepanel 中。
这就是我的布局:
<Gridview ID="gvApplications" DataSourceID="odsApplications" DataKeyNames="ID" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Functions">
<ItemTemplate>
<asp:ListView ID="lvFunctions" runat="server" DataSource='<%#Eval("ApplicationFunctions") %>'
DataKeyNames="ID">
<LayoutTemplate>
<asp:DataPager ID="dpFunctions" runat="server" PageSize="1" PagedControlID="lvFunctions">
<Fields>
<asp:NextPreviousPagerField />
</Fields>
</asp:DataPager>
<ul>
<li>
<span ID="itemPlaceholder" runat="server" />
</li>
</ul>
</LayoutTemplate>
<ItemTemplate>
<asp:Label ID="lblFunction" runat="server" Text='<%# Eval("ApplicationFunction.Name") %>' />
</ItemTemplate>
</asp:ListView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</Gridview>
想法?
老实说,我会考虑在这里使用主从模式。这方面有很多代码示例。例如:
在某些情况下,详细信息视图(您的情况下的子对象)将显示在单独的页面上。无论哪种方式,通过在单独的详细信息视图中显示子对象,您都可以避免嵌套带来的编码和显示问题。
Matt Berseth 有一些关于这个主题的最佳代码示例:
如果列表视图不使用数据源控件,列表视图/数据分页器组合将无法正常工作。
尝试在模板字段中包含数据源控件(objectdatasource 可能适用)。