2009-09-07 108 views
2

我有一個控件,我想通過它的數據源進行交流,這有可能嗎?我可以迭代數據源嗎?

該控件綁定到一箇中繼器,但我也想通過在.ascx控件頁面頂部使用內聯代碼遍歷項目。

這可能嗎?

更新

我綁定到一箇中繼器,並綁定到中繼器的東西是一個List集合。

我想:

myRepeater.DataSource 

而且我不通過智能感知得到什麼,鑄造List<UserPRofile>也不起作用。

+0

「bound to repeater」意思是什麼?控制器是否包含在中繼器內,或者是控制器的中繼器部分? – 2009-09-07 20:18:18

回答

1

當然,只要引用控件的DataSource屬性,它就會返回你最初綁定到控件的任何東西。您需要將返回值轉換爲適當的類型。

var dataSource = (List<MyClass>)myRepeater.DataSource; // your control 

記住,如果您打算進行更改,並希望它在控制中反映出來,那麼你應該使用支持2路結合適當的數據源,如BindList

+0

無法正常工作,甚至沒有投下它之後...... – mrblah 2009-09-07 20:27:29

+0

你能用更多的代碼更新你的問題嗎?向我們展示Repeater標記和數據綁定。這聽起來像你正在使用用戶控件。你是否將列表綁定到用戶控件並試圖訪問他們的數據源?這將與中繼器的數據源分開。 – 2009-09-07 20:44:50

1

據我所知,你想訪問位於用戶控件內的中繼器的數據源。我建議你將數據源公開爲一個屬性,並使用它在用戶控件之外循環,並綁定你的中繼器。

也可以使用Repeater.Items集合並獲取每個綁定的行作爲RepeaterItem實例。

foreach (RepeaterItem repeaterItem in myRepeater.Items) 
{ 
    lblResult.Text += " " + repeaterItem.Text; 
} 
相關問題