2009-08-18 142 views
0

我有一個ProductBox.ascx用戶控件,我用它作爲DataList的ItemTemplate,因爲我必須重複它。現在,在單獨的用戶控件ProductGrid.ascx內的數據列表。還有第三個用戶控件ProductPopUp.ascx.All這些控件位於頁面User.aspx上。在asp.net中嵌套用戶控件通信的用戶控件

我想從ProductPopUp.ascx訪問ProductBox.ascx。我想要一個鬆散耦合的解決方案。

請介意ProductBox.ascx是其他用戶控件內

回答

0

創建的嵌套控制公共屬性成員並將其設置爲需要在數據/值基本通過。

編輯:如果這些控件重複等等,然後可以設置這些新的屬性,如使用'FindControl'設置其他控件並獲得對UserControl的引用。

這是你在追求什麼?

+0

ProductBox.ascx中有一個公共屬性,它包含我想要的所有信息。我無法訪問ProductBox.ascx,因爲它在其他用戶控件內部。我想我可以使用遞歸的findcontrol找到它,但是再次說明它不會是最好的解決方案。 – Rohit 2009-08-18 14:48:38

0

我理解你對鬆散耦合的渴望,因爲理想情況下用戶控件應該對其外觀負責。不過,我可以想象家長控制需要掌握孩子的行爲的情況。

您可以將DataList的數據綁定事件提升到父頁面,然後操縱每個產品。儘量減少父母之間的界面的複雜性,孩子們儘可能多地將商業邏輯放在產品控制中。