在用戶控件的上下文中,用戶控件不知道其他用戶控件或其內容。您需要與頁面上下文中的控件進行交互,因爲該頁面可以識別這兩個控件。
你需要兩樣東西:
- 從BuyTourProduct控制觸發的事件。
- 與TourProductDetail控件中的PanelName交互的方法。
如果一個事件已經存在,請使用它;否則,它將要求您修改BuyTourProduct的來源,並在該代碼中公開事件並觸發該事件。然後,您還想從控件中調用此事件。
public class BuyTourProduct : UserControl
{
// ...
public delegate void MyHideEventDelegate();
public event MyHideEventDelegate MyHideEvent;
// ...
public void SomeFunction()
{
if (MyHideEvent != null)
MyHideEvent();
}
// ...
}
接下來,你需要添加一個方法與PanelName互動裏面TourProductDetail:
public class TourProductDetail : UserControl
{
// ...
private Panel PanelName;
// ...
public void SetPanelNameVisible(Boolean visible)
{
PanelName.Visible = visible;
}
// ...
}
從頁面,你會訂閱你想要的事件或MyHideEvent:
public partial class ReservationProduct : System.Web.UI.Page
{
// ...
protected void Page_Load(object sender, EventArgs e)
{
buyTourProduct.MyHideEvent += new BuyTourProduct.MyHideEventDelegate(buyTourProduct_MyHideEvent);
}
// ...
void buyTourProduct_MyHideEvent()
{
tourProductDetail.SetPanelNameVisible(false);
}
// ...
}
感謝您的示例代碼。它有很大幫助! – Deverill 2012-02-29 17:51:23