【问题标题】:Determine current page without using the DataPager's QueryString (ListView ASP.NET)在不使用 DataPager 的 QueryString (ListView ASP.NET) 的情况下确定当前页面
【发布时间】:2012-08-12 09:22:47
【问题描述】:

我有一个包含 ListView 的选项卡控件,有三个选项卡,每个选项卡都包含相同的 ListView,但只要选项卡发生变化,数据源就会更改。

假设有 3 个标签: 表 1:客户 Tab2:项目 Tab3:订单

当我使用 DataPager 时,问题就来了。 (上一个 1 2 3 4 5 6 ... 下一个) DataPager 使用 QueryString:

<asp:DataPager runat="server" ID="DataPager1" PagedControlID="ListView1" PageSize="5"     QueryStringField="page"  OnPreRender="Pager_PreRender" >
    <Fields>
        <asp:NextPreviousPagerField ButtonType="Button" PreviousPageText="Previous" />
        <asp:NumericPagerField ButtonType="Link" ButtonCount="10" />
        <asp:NextPreviousPagerField ButtonType="Button" NextPageText="Next" />
    </Fields>
</asp:DataPager>

这会产生以下网址:

http://localhost /My​​Project/view/Customers?page=1

假设我在 Tab3: Orders 中,如果我导航到下一页,则会发生回发并显示 Tab1: Customers,这是因为 URL表示 view/Customers?page=1 有没有不使用QueryString的方式实现分页?

这里是我使用 QueryString 的地方:

    protected void Pager_PreRender(object sender, EventArgs e)
    {
        int CurrentPage = 0;
        Int32.TryParse(Request.QueryString["page"], out CurrentPage);
        CurrentPage = CurrentPage.Equals(0) ? 1 : CurrentPage;

        HyperLink PreviousLink = DataPager1.Controls[0].Controls[0] as HyperLink;
        HyperLink NextLink = DataPager1.Controls[2].Controls[0] as HyperLink;
        if (PreviousLink != null)
        {
            if (CurrentPage.Equals(1))
            {
                PreviousLink.Visible = false;
            }
            else if (CurrentPage > 1)
            {
                PreviousLink.Visible = true;
            }
        }
        if (NextLink != null)
        {
            if ((CurrentPage * DataPager1.PageSize) >= DataPager1.TotalRowCount)
            {
                NextLink.Visible = false;
            }
            else
            {
                NextLink.Visible = true;
            }
        }
    }

【问题讨论】:

    标签: asp.net listview query-string datapager


    【解决方案1】:

    您可以使用 PagingDataSet 并使用 HiddenField 来存储页面索引。刚刚在另一个答案中解释过......

    Custom datatable with paging

    有意义吗?

    【讨论】:

    • 感谢您的回复,但不,它仍然没有任何意义,我不明白那个帖子中所说的内容。
    • 如何使用你所拥有的,而不是每次页面更改时都使用超链接和重定向,而是使用链接按钮和回发来跨页面移动。您可以使用隐藏字段来保存每个选项卡的页面索引。
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多