私は、バスケット内のアイテムの量を表示するためのラベル付きのユーザーコントロール "ヘッダー"を持っています。asp.netページのライフサイクルの問題
protected void Page_Load(object sender, EventArgs e)
{
lblBasketCount.Text = Session["basketItemsCount"]!=null?Session["basketItemsCount"].ToString():"0";
}
は、その後、私は方法があるページを持っている:それはこのような何かをし
public void btnAddItemToShoppingCart_Click(object sender, EventArgs)
{
Session["basketItemsCount"] = (from b in db.CartItems where b.crt_ID == cartId select b).Sum(p => p.item_quantity);
}
問題は、コントロールが既にPage_Loadイベントを持っていたされた後、ページのライフサイクルでのaddItemメソッドが発射されるということです。私のラベルはページの別のリロード後にのみ更新されます。
編集:
<%@ Register TagPrefix="asp" TagName="Footer" Src="~/Controls/Footer.ascx" %>
<asp:Header ID="Header" runat="server" />
とコントロールフォルダにあり:
ヘッダーコントロールは、マスターページで宣言されています。
その名前空間Sitename.Controls.Header
Page_PreRenderを代わりに使用してください。このイベントは、すべてのコントロールが表示される直前に発生します。 –