UserControlのコンテキストでは、ユーザーコントロールは他のUserControlまたはその内容を認識しません。ページは両方のコントロールを認識しているため、ページコンテキストでコントロールと対話する必要があります。 BuyTourProduct制御から発射
- イベント:
あなたは二つのものが必要になります。
- TourProductDetailコントロールのPanelNameと対話する方法。
イベントが既に存在する場合は、それを使用してください。それ以外の場合は、BuyTourProductのソースを変更してイベントを公開し、そのイベントをそのコード内で発生させる必要があります。次に、コントロール内からこのイベントを呼び出すこともできます。
public class BuyTourProduct : UserControl
{
// ...
public delegate void MyHideEventDelegate();
public event MyHideEventDelegate MyHideEvent;
// ...
public void SomeFunction()
{
if (MyHideEvent != null)
MyHideEvent();
}
// ...
}
次に、あなたがTourProductDetail内部PanelNameと対話するためのメソッドを追加する必要があります:
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