Не использовать Page_Load
событие (или другие события страницы) в UserControls
. Это приведет к таким проблемам.
Вместо этого вы должны использовать свойства, методы и события в вашем элементе управления.
Например, вы можете иметь свойство BasketCount
в вашем UserControl:
public String BasketCount
{
get { lblBasketCount.Text; }
set { lblBasketCount.Text = value; }
}
Тогда ваша страница может использовать это свойство:
var basketCount = (from b in db.CartItems where b.crt_ID == cartId select b).Sum(p => p.item_quantity);
Session["basketItemsCount"] = basketCount;
MyControl.BasketCount = basketCount.ToString();
Чтобы получить ссылку на элемент управления в вашем MasterPage
, вы должны предоставить общедоступное свойство, которое соответствует ему:
Например (в MasterPage):
public Header HeaderControl
{
get
{
return Header;
}
}
И вы можете вызывать это свойство с одной из ваших страниц ContentPages следующим образом (например, если тип вашего мастера называется « SiteMaster »):
((SiteMaster)Page.Master).HeaderControl.BasketCount = basketCount.ToString();