Кнопки ASP.NET VB DataPager не требуются, когда только одна запись данных - PullRequest
1 голос
/ 04 апреля 2011

Я успешно использую информационный пейджер во вложенном Listview. Когда доступна только одна запись данных, следующая предыдущая последняя и первая кнопки исчезают, как обычно. Однако я бы хотел, чтобы они вообще не появлялись.

Код 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

Однако пейджер всегда ничто в отладчике, т. Е. Он не может найти элемент управления.

Это может быть из-за того, что я не правильно выбрал обработчик событий (я пробовал несколько) или метод может быть неправильным.

Любой совет, полученный с благодарностью.

1 Ответ

1 голос
/ 06 апреля 2011

Попробуйте в событии списка 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
...