检查用户控件中的Page.IsPostBack

时间:2009-05-29 18:31:05

标签: c# asp.net postback

是否建议在用户控件Page_Load事件中检查Page.IsPostBack

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {


        }


    }

我得到的结果很糟糕

编辑〜这就是事情。加载主窗体时,我使用Request.QueryString来获取客户ID,然后将其放入SESSION变量中。

在控件Load事件中,我读取了SESSION变量以获取该客户的数据。那么,我是否需要在控制级别检查PostBack?

编辑〜这是控件的加载事件

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //Getting and storing the customer account number 
            if (string.IsNullOrEmpty((string)Session["CustomerNumber"]))
            {
                Session["CustomerNumber"] = cust.GetCustomerNumber(myHelper.GetCustomerIDFromQueryString());
                LoadProductData();
            }
        }

    }

这是myHelper Class

static class myHelper
{
    public static Guid GetCustomerIDFromQueryString()
    {
        //Getting the GUID (used as customerid in CRM) from the URL request of the selected account.  
        return Sql.ToGuid(System.Web.HttpContext.Current.Request["ID"]);
    }

}

}

3 个答案:

答案 0 :(得分:0)

无缘无故地检查它?绝对不。如果你应该只在第一次加载时而不是在后续的帖子上做某事,那么它应该是应该使用的模式。

答案 1 :(得分:0)

您是否确定在到达页面时,会话中始终存在“CustomerNumber”?您是否有任何押韵或理由可以找到您何时获得数据以及何时没有?

答案 2 :(得分:0)

如果在页面加载中使用“!IsPostBack”,当用户单击其他控件时它会执行postBack,因此您无法获取数据。  我希望能帮助你。