[quote=“zepostman, post:4, topic: 30854”]Bon en fait je voulais pas passer pour un incompétent notoire alors j’ai caché volontaire quelques détails. Faut pas s’offusquer si c’est pas propre B)
Donc la recherche est effectué dans le Session_Start du Global.asax. C’est dans cette méthode que je détecte si je suis dans le cas 1 (pas de paramètre) ou dans le cas 2 (avec un parametre). Si je suis dans le cas 2, je récupere le paramètre avec
string critere = Request.Params["critere"];
Puis j’effectue la recherche avec ce critère, remplie une arraylist résultat et j’affiche la page d’accueil. La page d’accueil se chargeant de vérifier que si l’arraylist n’est pas vide alors elle remplie la DataGrid de résultat.
En fait, le soucis c’est que je ne repasse jamais dans le Session_Start quand je colle l’URL avec un nouveau critère. Du coup il me recharge les même résultat (même arraylist). Il ne repasse pas non plus dans le Application_Start, ce qui m’aurait permis de vider la Session mais même pas.
J’ai essayé de lancer l’application avec un critère, fait IISRESET, puis coller l’url avec un autre critère de recherche et bien là ca marche parce qu’il va passer dans le Session_End au moment du IISRESET.
Voila j’espère que j’ai mis assez d’infos cette fois. Sinon faites moi signe.
Merci pour les réponse rapide en tout cas.
ZeP[/quote]
Bon, du taf je peux pas vérifier, mais la logique voudrais que ta session start se passe qu’une fois, quand ta session démarre. Autrement dit, c’est pas au bon endroit. Je reccomenderais plutôt le Page_Load de accueil.aspx, avec pour savoir dans quel cas tu te trouve :
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString["critere"] != null)
{
// Je suis dans le cas ou j'ai un parametre, je fait une recherche
}
else
{
// Je n'ai pas de parametres, on affiche la page de recherche toute vide
}
}
J’en profite pour préciser quelques détails : Application_Start démarre (en gros hein, c’est pas tout a fait exact) la toute premiere fois qu’un utilisateur la webap. Tant que le serveur est pas coupé ou redémarré, ca ne se relance plus (en gros). Session_Start démarre une fois par utilisateur, tant qu’il a son navigateur ouvert (ou que la session n’a pas expiré en fonction des parametres). Page_Load se lance à chaque fois que la page est chargée, indépendamment du statut de la webapp ou de la session.
En gros, dans Application, tu met tout ce qui concerne l’ensemble des utilisateurs (par exemple, un compteur global de connecté en simultané). Dans Session, tu met les parametres qui doivent survivre au changement de page (par exemple, le login et le mot de passe). Dans la page, tu met tout ce qui concerne cette page en particulier. (Je simplifie a mort, mais c’est pour que t’ai les grandes lignes).