2011-08-22 61 views
0

我在想,是否有可能將兩個web控件(ascx)耦合在一起,以便它們會對彼此的反應做出更改。我想到了類似於驗證控件的場景,其中(在驗證控件中)我選擇可用的控件進行驗證。ASP.NET中的(web)控件之間的耦合4

現在我想在我的網頁控件中做同樣的事情。我有控制A和控制B.情景是,當我改變控制A中的某些內容時,控制B將被更新。 Iam將控件A和B創建爲WebControls(ascx)。我想(在設計時)在webform上放置兩個控件(A和B),並在控件中選擇一個與控件B的耦合,所以當控件A發生某些事件時,控件A檢查控件B是否爲空事情「。

這適用於WebControl類型控件嗎?我假設我應該在控件A的屬性上使用一些屬性,但是在控件A中存儲控件B的位置? ViewState和Context.Items需要控件可序列化...

任何想法?!

回答

0

您可以將控件ID從一個控件傳遞到另一個控件。然後,您可以強制耦合控件繼承一些基類並使用FindControl來獲取彼此的實例。我相信這是數據綁定控件如何與DataSource控件一起工作。

+0

是的,它工作thx! (我會在幾分鐘內將其標記爲答案)。但還有一個問題---是不是這樣慢?!爲了找到我的控件,我沒有使用「FindControl」(控件B在更新面板等),但我寫了簡單的「RecursiveFindControl」...這不是很「慢」! – jackal

+0

確定它比直接設置要慢,但它應該在大多數情況下工作。 ASP.NET在頁面生命週期中多次遍歷控件樹,並執行更多的事情。再多一次遍歷不會影響性能太多。當然,確保將引用緩存到控件中,而不是在每次訪問屬性時都搜索它。 – Stilgar