2010-04-02 60 views
2

我有2個Web用戶控件,它們都繼承了擴展UserControl的相同基類。我想提出一個事件,另一個應該意識到這一點。兩者都在同一頁面上,但第二個控件永遠不會處理我在第一個控件上提出的自定義事件!有任何想法嗎 ?請你只指向一個可能的實現(順便說一句,我在Google上搜尋它,因爲早上,但沒有運氣!)提高自定義事件以允許Web用戶控件互相通信

+0

你能告訴我們你到目前爲止的源代碼嗎? – 2010-04-02 20:57:36

+0

這裏有一個類似的問題(儘管它討論了同一頁上的不同嵌套控件)http://stackoverflow.com/questions/2550283/asp-net-event-delegation-between-user-controls/2550325你必須做一些類似於針對這個問題的答案來將控制事件附加在一起。 – R0MANARMY 2010-04-03 02:19:47

+0

我已經嘗試了很多方法,我會測試這個! – 2010-04-03 09:54:48

回答

1

你可以很容易地執行以下操作:

1)在控制1.
2創建事件)創建在控制2公開的方法,如果在控制1中的事件被引發
3被調用)訂閱事件的控制l 1(你在哪裏實例化它們,例如另一種控制,內容頁面或主頁)
4)從3事件處理程序內),呼叫)

5 2中創建的方法)做其他事情周圍,如果控制2應與控制1進行通信

這一切都需要服務器端的執行。我相信也可能有客戶端解決方案。評論後

編輯: 只有兩種可能的通訊方式,我能想到的:
1)控件不知道對方,因此不能直接通信。 =>您需要第三個控件/頁面/ masterpage /任何(數據庫,服務等)來啓用通信。2)控件相互引用,因此可以直接通信=>非常糟糕的OOP。如果你使用它,你根本不理解OOP,應該考慮你的工作

隨意選擇其中一個選項。

+0

它接觸到父頁面應該參與。你能否推薦一個解決方案完全解耦,而不需要在註冊自定義事件時使用父頁面/控件? – 2010-04-06 13:46:52

0

您可以使用委託

查找Here爲例,從提升用戶控件活動

+0

它接觸到父頁面應該參與。你能否推薦一個完全解耦的解決方案,而不需要註冊父頁面/控件來註冊自定義事件? – 2010-04-06 13:47:15