gpt4 book ai didi

asp.net - 带有 DataPager 的 ListView 不起作用

转载 作者:行者123 更新时间:2023-12-03 12:34:00 28 4
gpt4 key购买 nike

从我读过的所有内容来看,似乎将分页添加到 ListView 控件应该非常简单,但它对我不起作用。在将 ListView 和 DataPager 控件添加到表单并将它们连接在一起之后,我的行为变得非常奇怪。 DataPager 正确地限制了 ListView 的页面大小,但单击分页按钮根本不会影响 ListView。分页按钮似乎认为他们正在做他们的工作,因为当您转到最后一页等时,最后一个按钮被禁用,但 ListView 永远不会改变。此外,需要在 DataPager 上单击两次才能使其执行任何操作,即单击 Last 一次不会执行任何操作,但再次单击它会使 DataPager 使用react,就好像现在选择了最后一页一样。

我能想到的唯一一件事是我在运行时将 DataSource 绑定(bind)(到 LINQ 对象),而不是使用 LinqDataSource 控件或任何东西。有没有人见过这种行为?难道我做错了什么?这是我正在使用的代码:

<asp:DataPager ID="HistoryDataPager" runat="server" PagedControlID="HistoryListView" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="true" ShowLastPageButton="true" />
</Fields>
</asp:DataPager>

<asp:ListView ID="HistoryListView" runat="server">
...
</asp:ListView>

在代码隐藏中:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then
HistoryListView.DataSource = From x in myContext.myTables ...
DataBind()
End If

End Sub

最佳答案

此外,如果您的 ListView 的数据源发生更改(例如,如果根据搜索参数显示数据),请不要忘记在每次更新数据源时重置分页器。使用 ListView,这不像其他一些数据绑定(bind)控件(例如 GridView)那么简单:

private void ResetListViewPager()
{
DataPager pager = (DataPager)ListViewMembers.FindControl("DataPager1");
if (pager != null)
{
CommandEventArgs commandEventArgs = new CommandEventArgs(DataControlCommands.FirstPageCommandArgument, "");
// MAKE SURE THE INDEX IN THE NEXT LINE CORRESPONDS TO THE CORRECT FIELD IN YOUR PAGER
NextPreviousPagerField nextPreviousPagerField = pager.Fields[0] as NextPreviousPagerField;
if (nextPreviousPagerField != null)
{
nextPreviousPagerField.HandleEvent(commandEventArgs);
}

// THIS COMMENTED-OUT SECTION IS HOW IT WOULD BE DONE IF USING A NUMERIC PAGER RATHER THAN A NEXT/PREVIOUS PAGER
//commandEventArgs = new CommandEventArgs("0", "");
//NumericPagerField numericPagerField = pager.Fields[0] as NumericPagerField;
//if (numericPagerField != null)
//{
// numericPagerField.HandleEvent(commandEventArgs);
//}
}
}

关于asp.net - 带有 DataPager 的 ListView 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/234289/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com