1

我在嵌套的 Listview 中成功使用了 datapager。当只有一条数据记录可用时,下一个上一个最后一个和第一个按钮按正常方式淡化。但是我希望它们根本不出现。

我拥有的 aspx 代码是:

                <asp:ListView ID="Pictures" runat="server" DataSourceID="SqlDataSource2" >

                    <EmptyDataTemplate>
                        <span>No data was returned.</span>
                    </EmptyDataTemplate>
                    <ItemTemplate>
                        <span style="">
                            <br />
                            <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' ToolTip='<%# Eval("ToolTip") %>'
                                Height="150px" />
                            <br />
                            <asp:Label ID="DescriptionLabel" runat="server" Text='<%# Eval("Description") %>' />
                            <br />
                            <br />
                        </span>
                    </ItemTemplate>

                    <LayoutTemplate>
                        <div id="itemPlaceholderContainer" runat="server" style="">
                            <span runat="server" id="itemPlaceholder" />
                        </div>
                        <div style="clear: both;">
                            <asp:DataPager ID="DataPager1" runat="server" PageSize="1">
                                <Fields>
                                    <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" />
                                </Fields>
                            </asp:DataPager>
                        </div>
                    </LayoutTemplate>
                </asp:ListView>

我尝试使用的代码是:

    Dim pager As DataPager = CType(e.Item.FindControl("DataPager1"), DataPager)

    If (Not pager Is Nothing) Then
        pager.Visible = (pager.PageSize < pager.TotalRowCount)
    End If

然而,寻呼机在调试器中总是什么都不是,即它找不到控件。

这可能是因为我没有正确选择事件处理程序(我已经尝试了几个)或者方法可能是错误的。

感激地收到任何建议。

4

1 回答 1

1

databound在列表视图的事件中尝试它,并FindControl从列表视图中调用该函数。

Protected Sub Pictures_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles Pictures.DataBound
      Dim pager As DataPager = CType(Pictures.FindControl("DataPager1"), DataPager)

      If (Not pager Is Nothing) Then
          pager.Visible = (pager.PageSize < pager.TotalRowCount)
      End If


End Sub
于 2011-04-06T14:34:11.260 回答