2-й DataPager не виден после 2-го DataBind()
У меня есть объект ListView на странице ASP.Net с двумя dataPager для одного объекта ListView. Один вверху страницы, другой внизу. Оба имеют одинаковые свойства, и оба отлично отображаются при начальной загрузке страницы.
Когда пользователю разрешено искать элементы в списке, dataPager-ы обычно намеренно скрыты, поскольку они не применяются к короткому результирующему списку. Однако, когда я "сбрасываю" критерии фильтра, чтобы снова показать все записи, отображается только dataPager внизу страницы. DataPager вверху страницы остается скрытым, даже если его свойства возвращены в видимый. Это звучит так же, как логическая ошибка, но, пройдя несколько раз по коду и пытаясь найти ошибку безрезультатно, мне интересно, что я могу неправильно понять или не увидеть.
Любая помощь будет оценена.
<asp:DataPager ID="DataPagerHeader" runat="server" PagedControlID="courseListView" PageSize="20" >
<Fields>
<asp:NumericPagerField ButtonType="Button" />
</Fields>
</asp:DataPager>
<asp:ListView ID="courseListView" runat="server" datasourceid="CoursesDataSource" OnSorting="courseListView_Sorting" OnDataBound="courseListView_DataBound" OnItemDataBound="courseListView_ItemDataBound">
<LayoutTemplate>
...
</LayoutTemplate>
<ItemTemplate>
...
</ItemTemplate>
</asp:ListView>
<asp:DataPager ID="DataPagerFooter" runat="server" PagedControlID="courseListView" PageSize="20">
<Fields>
<asp:NumericPagerField ButtonType="Button" />
</Fields>
</asp:DataPager>
Код для сокрытия / отображения объектов хранилища данных:
protected void courseListView_DataBound(object sender, EventArgs e)
{
DataPagerFooter.Visible = (DataPagerFooter.PageSize < DataPagerFooter.TotalRowCount);
DataPagerHeader.Visible = (DataPagerHeader.PageSize < DataPagerHeader.TotalRowCount);
}
Глядя на исходный код с помощью Firebug, вы видите следующее, где должен быть dataPager. Обратите внимание на отсутствие тегов между тегами.
<span id="ctl00_mainPlaceHolder_DataPagerHeader"></span>