2014-11-24 41 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