2009-05-29 8 views
0

Est-il recommandé de vérifier l'Page.IsPostBack dans un événement comme Page_Load de contrôle utilisateurVérification Page.IsPostBack dans utilisateur contrôle

protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!Page.IsPostBack) 
     { 


     } 


    } 

Je reçois wierd résultats

Modifier ~ est ici la chose. Lorsque le formulaire principal est chargé, j'utilise Request.QueryString pour obtenir l'identifiant client que je place ensuite dans une variable SESSION.

Dans l'événement Load de contrôle, j'ai lu la variable SESSION pour obtenir les données pour ce client. Alors, dois-je vérifier PostBack au niveau du contrôle?

Modifier ~ Voici l'événement de chargement du contrôle

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(); 
      } 
     } 

    } 

Voici la myHelper classe

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

Quels "résultats étranges" obtenez-vous? –

+0

Parfois, j'obtiens des données et parfois non. Si je supprime le PostBack tout fonctionne bien. J'ai édité mon poost avec exactement ce que je fais. –

+0

Pourquoi devez-vous le placer dans une variable de session? Pourquoi ne pouvez-vous pas simplement accéder à la demande de votre contrôle? – womp

Répondre

0

Si vous utilisez "! IsPostBack" dans le chargement de la page, lorsque l'utilisateur clique sur un autre contrôle, il fait un postback, donc vous n'obtenez pas vos données. J'espère que cela vous aide.

0

vérifier juste pour aucune raison? Absolument pas. Si vous deviez faire quelque chose seulement au premier chargement et non sur les dos postérieurs suivants, alors c'est le modèle qui devrait être utilisé.

0

Etes-vous sûr que vous aurez toujours un "CustomerNumber" déjà stocké dans la session au moment où vous arrivez à votre page? Y at-il une rime ou une raison que vous pouvez trouver quand vous obtenez des données et quand vous ne le faites pas?

+0

Parfois, je reçois des données et parfois non. Si je supprime le PostBack tout fonctionne bien. J'ai édité mon poost avec exactement ce que je fais. –

Questions connexes