如何从codebehind(c#)更改asp:ListView DataPager页面

时间:2014-11-24 14:30:37

标签: c# asp.net listview datapager

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

    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,也可以采用其他方式来设置其页码。

干杯

1 个答案:

答案 0 :(得分:0)

我发现了一个类似于你的场景(http://www.4guysfromrolla.com/articles/021308-1.aspx),并且我验证了示例应用程序在运行时调用SetPageProperties()。

务必更改最后一个" databind" SetPageProperties中的参数调用从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();
    }
}

希望有所帮助。