2014-11-24 63 views
1

非常简单的问题,但我遇到了大量的问题。如何从代码隐藏(c#)更改asp: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。是否有另一种方式来访问,9759​​,这是listView,也可能是另一种设置其页码的方法。

干杯

回答

0

我发现了一个场景,与你相似(http://www.4guysfromrolla.com/articles/021308-1.aspx),我证实,示例应用程序的工作原理在运行时调用SetPageProperties()。

一定要改变你SetPageProperties最后的“数据绑定”的说法,从假来电为True:

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

然后确保你打电话restorePagerNumber在pageLoad的

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

。希望帮助。

+0

叶我在pageLoad上调用该方法,但也没有工作,如果我databind然后整个列表视图变得疯狂(越来越多的空页面等)。老实说,整个数据绑定程序很傻,想换个页面,你每个页面的改变都要给数据库上的数据绑定调用一下。您认为他们会想出更有效的方式来循环访问已存储的数据。 – 2014-11-24 19:52:53