2009-09-15 47 views
1

我90%確定我已經完成了此操作,但我不記得我是如何做到的。多個asp:轉發器DataBind

我有一箇中繼器,我想在頁面上使用兩次,因爲結構和數據綁定事件是相同的,但與中繼器的數據綁定明顯不同。

在過去,我相信我重新設置中繼器上的數據源,然後databinded,然後做相同,但與其他數據源,所以有效:

MyRepeater.DataSource = DataSourceOne; 
MyRepeater.DataBind(); 
MyRepeater.DataSource = DataSourceTwo; 
MyRepeater.DataBind(); 

現在,這將產生的HTML兩次上頁。在這個例子中有兩個列表,其中包含不同的數據。

想一想,它可能會使用類型的數據源。在它可能是一個數據集/表之前,我綁定了中繼器,但是這次我使用了一個ArrayList。

ArrayList Items = new ArrayList(); 
Items = this.GetMenu(this._ProductsPageID); 
this.rep_ProductsPortfolio.ItemDataBound += new RepeaterItemEventHandler(ProdPortItemDataBound); 
this.rep_ProductsPortfolio.DataSource = Items; 
this.rep_ProductsPortfolio.DataBind(); 

// Get portfolio 
Items = this.GetMenu(this._PortfolioPageID); 
this.rep_ProductsPortfolio.ItemDataBound += new RepeaterItemEventHandler(ProdPortItemDataBound); 
this.rep_ProductsPortfolio.DataSource = Items; 
this.rep_ProductsPortfolio.DataBind(); 

我也試過對每個中繼器使用不同的ArrayList,但那也不起作用。

目前發生的所有事情都是第二個數據綁定重新綁定到舊的中繼器上,並且我只在頁面上有一個數據綁定。

任何想法? 在此先感謝

回答

2

如果您更改數據源,它將無法使用第一個數據源。 我的想法是使用兩個中繼器。

+0

我如何使用嵌套中繼器爲我的問題在這裏:http://stackoverflow.com/questions/31255119/how-to-populate-two-separate-repeaters-with-distinct-column-name-and-該值-c – SearchForKnowledge 2015-07-07 13:39:20

1

我不確定數據集/表格,但我總是使用ArrayLists作爲我的中繼器的數據源,並且永遠不會重複它。

但似乎unresonable一箇中繼器中創建HTML代碼= O兩個表的事實

無論如何,設置DataSource正在取代參考,而不是「追加」它=)

編輯:

從MSDN文檔:

Repeater.DataSource屬性:獲取或設置,對於填充列表提供數據的數據源。

3

你確定過去沒有使用兩個中繼器和一個數據源嗎?

我認爲你需要在這裏使用兩個中繼器。

+0

不,是不同的數據源:) – 2009-09-15 11:07:50

+0

...然後我懷疑你觸發了一個錯誤,或者至少不確定的行爲,你不應該依賴。 – wefwfwefwe 2009-09-15 11:50:08

0

如前所述,您所做的將會覆蓋第一個數據綁定的輸出。

但是你數據綁定他們

var allItems = new List<Foo>(); 
allItems.AddRange(fooDataSource1); 
allItems.AddRange(fooDataSource2); 
repeater1.Datsource = allItems; 
repeater1.Databind(); 
+0

不錯的想法,但我改變了每個數據源在UL上的一個類,所以很傷心我不能綁定一個大數據集:( – 2009-09-15 11:09:47

2

謝謝大家,我想不通我怎麼以前做過(如果我甚至!)之前,你可以結合清單,時間浪費了我創造了這個問題現在對它的迴應是解決方案的十倍。

最後我剛剛完成了一個數據源的工作,處理綁定事件,並且唯一改變的是綁定的數據,我只是複製了中繼器並將其重命名並連接了其他數據源新的中繼器和重新使用數據綁定事件,以一個整體1分鐘...哈哈

總之,不能做,使用兩個中繼一個綁定的事件處理程序

謝謝大家! :)