2009-05-29 5 views
0

그것이여기에 ~

protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!Page.IsPostBack) 
     { 


     } 


    } 

내가 이상한가

편집 결과를 얻고 같은 사용자 제어 Page_Load 이벤트에 Page.IsPostBack을 확인하는 것이 좋습니다 제어하는 ​​것입니다. 기본 폼이로드 될 때 Request.QueryString을 사용하여 고객 ID를 가져온 다음 SESSION 변수에 배치합니다.

컨트롤로드 이벤트에서 해당 고객에 대한 데이터를 가져 오기 위해 SESSION 변수를 읽었습니다. 그렇다면 제어 레벨에서 포스트 백을 점검해야합니까?

편집 ~ 여기가 제어 여기

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 클래스입니다

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"]); 
    } 

} 

}

+0

"이상한 결과"는 무엇입니까? –

+0

때로는 데이터를 얻지 못하는 경우가 있습니다. PostBack을 제거하면 모든 것이 잘 작동합니다. 나는 내가하고있는 일과 함께 나의 가락을 편집했다. –

+0

왜 세션 변수에 배치해야합니까? 왜 당신은 당신의 통제에서 요청에 접근 할 수 없습니까? – womp

답변

0

페이지로드시 "! IsPostBack"을 사용하는 경우 사용자가 다른 컨트롤을 클릭하면 포스트 백이 수행되므로 데이터를 가져올 수 없습니다. 당신을 돕기를 바랍니다.

0

그냥 아무 이유없이 그것을 확인? 절대적으로하지. 후속 포스트 백이 아닌 첫 번째로드에서만 수행해야하는 경우 사용해야하는 패턴입니다.

0

페이지에 도달 할 때까지 항상 "CustomerNumber"가 세션에 저장되어 있습니까? 어떤 운율이나 이유가있을 때 당신이 당신이 때 데이터를 얻을 때 당신이 찾을 수 있습니까?

+0

때로는 데이터를 얻지 못하는 경우가 있습니다. PostBack을 제거하면 모든 것이 잘 작동합니다. 나는 내가하고있는 일과 함께 나의 가락을 편집했다. –