В контексте UserControl пользовательский элемент управления не знает о другом UserControl или его содержимом. Вам нужно будет взаимодействовать с элементами управления в контексте страницы, поскольку страница знает оба элемента управления.
Вам понадобятся две вещи:
- Событие, запущенное из элемента управления BuyTourProduct.
- Метод взаимодействия с PanelName в элементе управления TourProductDetail.
Если событие уже существует, используйте его; в противном случае вам потребуется изменить источник 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);
}
// ...
}