【问题标题】:How to change asp:ListView DataPager page from codebehind (c#)如何从代码隐藏 (c#) 更改 asp:ListView DataPager 页面
【发布时间】:2014-11-24 14:30:37
【问题描述】:

很简单的问题,但我遇到了很多问题。

    protected void restorePagerNumber()
    {
        if (Session["PageNumber"] != null)
        {
            System.Diagnostics.Debug.Write(Session["PageNumber"]);
            DataPager pager = searchListView.FindControl("searchDataPager") as DataPager;
            pager.SetPageProperties((int)Session["PageNumber"] * pager.PageSize, pager.MaximumRows, false);
        }
    }

这就是我目前拥有的,我尝试在数据绑定之前使用它,在数据绑定之后,它们似乎都不起作用。创建新对象后,我真的可以更改pager 的值吗? 听起来不合逻辑,但没有它我无法访问datapager。是否有另一种方法可以访问dataPager 中的listView,也许还有另一种方法来设置其页码。

干杯

【问题讨论】:

    标签: c# asp.net listview datapager


    【解决方案1】:

    我发现了一个与您的场景相似的场景 (http://www.4guysfromrolla.com/articles/021308-1.aspx),并且我验证了示例应用程序在运行时调用 SetPageProperties() 可以正常工作。

    确保将 SetPageProperties 调用中的最后一个“databind”参数从 False 更改为 True:

    pager.SetPageProperties((int)Session["PageNumber"] * pager.PageSize, pager.MaximumRows, true);
    

    然后确保在 PageLoad 调用 restorePagerNumber

    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (!Page.IsPostBack) {
            restorePagerNumber();
        }
    }
    

    希望对您有所帮助。

    【讨论】:

    • 是的,我在 pageLoad 上调用了该方法,但也没有工作,如果我进行数据绑定,那么整个列表视图就会变得疯狂(得到一堆空页面等等)。老实说,整个数据绑定过程很愚蠢,想要更改页面,您必须在每次页面更改时都进行数据绑定,这浪费了对数据库的调用。您认为他们会想出更有效的方法来循环浏览已存储的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2015-10-20
    • 1970-01-01
    • 2015-08-10
    • 2014-10-03
    • 2011-04-23
    相关资源
    最近更新 更多