在Gridview内部为Listview进行分页无法正常工作

时间:2010-09-24 15:45:39

标签: asp.net gridview listview paging

我有一个嵌套在gridview内的listview。

我正在尝试在listview上进行分页工作。我认为它会显示分页控件,并且只是正常浏览它们。

它确实显示控件,并将显示的结果集限制为适当的记录数(pageSize),但是当我单击分页控件时,网格刷新并且嵌套列表视图没有任何变化(它仍在第一页上)

我已尝试在listpanel中嵌套listview,但行为仍然存在。 gridview本身已经在更新面板中。

所以这就是我的布局:

<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>

想法?

2 个答案:

答案 0 :(得分:0)

老实说,我会考虑在这里使用主 - 细节模式。这里有很多代码示例。例如:

Google: Master Details Examples with Child Objects

在某些情况下,详细信息视图(您的案例中的子对象)将显示在单独的页面上。无论哪种方式,通过在单独的详细信息视图中显示子对象,您可以避免编码和显示嵌套带来的问题。

Matt Berseth在这个主题上有一些最好的代码示例:

http://mattberseth.com/blog/gridview/

答案 1 :(得分:0)

如果列表视图不使用数据源控件,Listview / datapager组合将无法正常工作。

尝试在模板字段中包含数据源控件(objectdatasource可能适用)。