2011-10-17 67 views
1

我有一個aspx頁面,有兩個不同的用戶控件。我想找到用戶控件,並能夠設置屬性等,從用戶控制B.如何從單獨的用戶控件查找和與頁面上的用戶控件進行交互?

我想我可以做這樣的事情:

Dim CMFilters As Control = Me.Parent.FindControl("CMFilters") 

...但是,這並不工作能夠設置屬性和調用方法。我以某種方式需要獲得用戶控件,並將其聲明爲該用戶控件類型。

回答

2

你不應該控制從屬控制B的

相反,從包含該控件的頁面讀取和寫入兩個控件的屬性。

因此,要將控件A和B中要設置的所有屬性公開爲public屬性(讀/寫或只讀)並將它們連接在您頁面的Page_Load事件中。

0

有一篇文章here解釋如何做到這一點。

我想指出,這不被視爲一個好設計。這是被稱爲「代碼味道」的那種類型。作爲一般的經驗法則,對象應該設計成不知道其他對象,並且可以獨立於其他對象運行。

一個更好的方法是簡單地讓對象完成它們獨立完成的工作,並讓頁面類處理交互,因爲每個對象都是頁面的子元素。

這種設計被列爲一個代碼味道在這裏:

http://www.codinghorror.com/blog/2006/05/code-smells.html

不適當的親密關係

注意那些花太多時間在一起,不合適的方式該接口的類或類 。對於彼此,類別應該只知道 。

相關問題