2011-01-30 3 views
1

J'ai une page maître où je charge des données dans la session.chargement des données dans la session une seule fois

je mets les lignes de code qui appellent mes requêtes dans le événement Page_Init de la page principale, à l'intérieur d'une instruction if

if (!Page.IsPostBack){ load data from queries into the session}

Est-ce que j'ai besoin pour toutes les données de session à être chargé qu'une seule fois par session. Qu'en est-il des rappels? Dois-je également vérifier pour éviter un rechargement des données de session sur les rappels? Toute autre condition que je dois vérifier pour éviter des rechargements inutiles des données de session? Je cherche à exécuter les requêtes dans l'instruction de condition une seule fois.

Merci.

Répondre

1

Non. Ce que vous venez de publier ne garantit pas qu'il sera appelé une fois par session. En fait, chaque fois que votre page ASPX est invoquée avec une commande GET, les données seront chargées.

Si vous souhaitez que les données soient chargées une seule fois par session HTTP (je suppose par session que vous voulez dire session HTTP) puis essayez Session_OnStart event handler.

+0

dans quel fichier va le Session_OnStart? Dans le code de la page maître derrière ou ailleurs? – frenchie

+0

Nevermind, got it: aller à la racine, clic droit, Ajouter un élément, fichier d'application globale et le code est généré. Merci de m'avoir mis sur la bonne voie. – frenchie

1

Vous pouvez vérifier si la variable de session est null. Si elle est null, chargez les données. Si ce n'est pas nul, alors ne faites rien. Comme le suggère Pablo Santa Cruz, le meilleur endroit pour charger la variable de session est dans le gestionnaire d'événements Sessio_OnStart, mais un moyen simple et rapide est de vérifier simplement l'existence des sessions dans l'événement Page_Init.

Questions connexes