2008-11-19 26 views
3

我有一個方法來返回一組對象作爲通用列表,然後綁定到Repeater。我想使用PagedDataSource類在中繼器上實現分頁,但我不確定這是否可行,因爲它似乎不起作用。將PagedDataSource綁定到通用列表是否可行?

我必須更改我的方法的返回類型,還是有可能將PagedDataSource綁定到通用列表?

回答

4

我只是修改了一些我的代碼使用一個通用的列表,並似乎已經工作得很好,希望這有助於:

注意,這整個方法可以帶或不帶頁碼被稱爲自動設置該頁面還在調用PagingPanel的面板內部建立一個分頁控件。

在PagedDataSource實例(dataSource)上設置DataSource的行確實帶有一個NewsItem(searchResults)數組,我更新它以使用使用NewItem數組創建的List。

void PopulateNewsItems (int? pageNo) 
{ 
    var model = ModelFactory.GetNewsModel(); 
    var searchResults = model.GetNewsItems(); 

    var dataSource = new PagedDataSource(); 

    // CHANGED THE ARRAY OF NEWSITEMS INTO A GENERIC LIST OF NEWSITEMS. 
    dataSource.DataSource = new List<NewsItem> (searchResults); 
    dataSource.AllowPaging = true; 

    var pageSizeFromConfig = ConfigurationManager.AppSettings["NewsItemsPageCount"]; 
    var pageSize = 10; 

    int.TryParse (pageSizeFromConfig, out pageSize); 

    dataSource.PageSize = pageSize; 
    dataSource.CurrentPageIndex = pageNo ?? 0; 

    PagingPanel.Controls.Clear(); 
    for (var i = 0; i < dataSource.PageCount; i++) 
    { 
     var linkButton = new LinkButton(); 
     linkButton.CommandArgument = i.ToString(); 
     linkButton.CommandName = "PageNo"; 
     linkButton.Command += NavigationCommand; 
     linkButton.ID = string.Format ("PageNo{0}LinkButton", i); 
     if (pageNo == i || (pageNo == null && i == 0)) 
     { 
      linkButton.Enabled = false; 
      linkButton.CssClass = "SelectedPageLink"; 
     } 

     linkButton.Text = (i + 1).ToString(); 

     PagingPanel.Controls.Add (linkButton); 
     if (i < (dataSource.PageCount - 1)) 
      PagingPanel.Controls.Add (new LiteralControl ("|")); 
    } 

    NewsRepeater.DataSource = dataSource; 
    NewsRepeater.DataBind(); 
} 

void NavigationCommand (object sender, CommandEventArgs e) 
{ 
    PopulateNewsItems (int.Parse ((string)e.CommandArgument)); 
} 
+0

感謝您的幫助,nice e xample。 – 2008-11-19 13:35:48

3
  1. 設置你的PagedDataSource的數據源到您的列表
  2. 設置任何你需要
  3. 設置你的中繼的數據源到pageddatasource對象本身
  4. 綁定中繼PagedDataSource的尋呼變量
  5. 完成任務
相關問題