J'ai 3 parties sur mon site, le site principal, le contrôle utilisateur (à l'intérieur du site principal) et la page générale. Lorsqu'un utilisateur se connecte, il est redirigé vers la page Général. Le contrôle utilisateur est une liste déroulante de différents comptes (premier compte de sélection automatique) qui obtient leur nom d'utilisateur et exécute la procédure stockée pour extraire leurs informations dans une variable de session SiteID
.Charger le contrôle utilisateur avant la page
Ensuite, dans la page Général, je définis toutes les étiquettes pour les informations des utilisateurs. avec ce code.
if (Session["SiteID"] != null)
{
SiteID = int.Parse(Session["SiteID"].ToString());
PopulateAccountData();
PopulateAccountInformation2();
PopulateSiteNodes();
PopulateSiteMap();
}
else
{
LabelSiteName.Text = "No Site Selected";
}
Le problème est quand la page se charge pour la première fois, il ne dispose pas Session["SiteID"]
, je dois actualisez pour tout charger.
Je suis nouveau sur ASP.net, donc je ne suis pas sûr si je le fais bien, mais comment puis-je tout charger la première fois?
Ne laissez pas le UserControl lier lui-même de '' Page_Load' mais il DataBind' de la page quand il le devrait. Cela permet également de charger paresseux les contrôles. La page est le contrôleur pas le 'UserControl'. Donc, fournissez une méthode publique dans 'UserControl' que vous pouvez appeler depuis la page. –