加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – ListView与DataPager不工作

发布时间:2020-12-16 00:46:47 所属栏目:asp.Net 来源:网络整理
导读:从我读过的一切中,似乎添加到ListView控件的分页应该是简单的,但它不适用于我。将ListView和DataPager控件添加到表单并将其连接在一起后,我变得非常奇怪的行为。 DataPager正确地限制了ListView的页面大小,但是单击分页按钮根本不会影响ListView。寻呼按
从我读过的一切中,似乎添加到ListView控件的分页应该是简单的,但它不适用于我。将ListView和DataPager控件添加到表单并将其连接在一起后,我变得非常奇怪的行为。 DataPager正确地限制了ListView的页面大小,但是单击分页按钮根本不会影响ListView。寻呼按钮似乎认为他们正在做他们的工作,因为最后一个按钮被禁用,当你去最后一页等,但是ListView从不改变。此外,DataPager需要两次点击即可使其执行任何操作,即单击“上一次”不执行任何操作,但再次单击将导致DataPager反应,就像最后一页现在被选中一样。

我唯一可以想到的是,我在运行时绑定DataSource(到一个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

解决方法

看看ListViewPagedDataSource。
private ListViewPagedDataSource GetProductsAsPagedDataSource(DataView dv)
{
// Limit the results through a PagedDataSource
ListViewPagedDataSource pagedData = new ListViewPagedDataSource();
pagedData.DataSource = dv;
pagedData.MaximumRows = dv.Table.Rows.Count;
pagedData.TotalRowCount = dpTop.PageSize;

if (Request.QueryString[dpTop.QueryStringField] != null)
  pagedData.StartRowIndex = (Convert.ToInt32(Request.QueryString[dpTop.QueryStringField]) - 1) * dpTop.PageSize;
else
  pagedData.StartRowIndex = 0;

return pagedData;
}

虽然,查看最后一页时遇到问题。 DataPager跳转到第一页,但显示的数据是最后一页。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读