ASP.NET - 如果页面是回发,则标签不会更新

时间:2011-04-30 19:02:21

标签: c# asp.net postback master-pages

我有一个MainPage.Master和另一个使用MainPage.master作为其主页的ContentPage.Master(我认为它'继承'主要母版页?对术语不确定..)

在MainPage.Master.cs上我在Page_Load中有代码查询数据库并返回一个int(这是一个DataTable中总行数的计数)这个在每个页面上加载更新一个带有一些html的asp:literal包括int。这在更改页面时工作正常,但在回发时不起作用。

例如,当用户单击添加到此DataTable的按钮时,它会被添加,但asp:literal不会更改,直到我单击更改页面的链接。

所以回顾一下;它添加到DataTable但不更新asp:literal中的计数。我认为这与回发有关,但不知道该怎么办..

MasterPage.master.cs中的代码:

    protected void Page_Load(object sender, EventArgs e)
{
    if (Session["OrderID"] == null)
    {
        NoItemsInCart.Text = "<span class=\"ajax_cart_no_product\">0 items</span>";
    }
    else
    {
        var itemsincart = Cart.ItemsInCart((int)Session["OrderID"]);
        NoItemsInCart.Text = string.Format("<span class=\"ajax_cart_no_product\">{0} item(s)</span>", itemsincart);
    }
}

因此,当用户单击要添加到DataTable的按钮时,此代码确实可以正常工作,但不能初始化。当我导航到另一个页面时,它会更新并显示正确的数字。

谢谢,

迈克尔

1 个答案:

答案 0 :(得分:0)

如果您希望在用户单击按钮时更改此项,请将其添加到事件方法而不是页面加载。这应该适合你。