Mémoriser l'état d'un gridview [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
1 juillet 2008
-
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
-
Bonjour,

j'aurai aimé savoir, s'il était possible de garder en mémoire l'état d'un gridview.
En fait, les utilisateurs effectuent une recherche sur une page, ensuite un gridview apparait donc selon la recherche effectuée.
Ensuite, des hyperlink dans le gridview me font basculer sur une autre page. Sur cette deuxième page, j'ai un bouton retour, mais le problème c'est que j'arrive bien à revenir sur la page précédente, mais le résultat de la recherche n'est plus là ...

Si quelqu'un à une idée ^^

Merci :)

6 réponses

Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonjour,

Ce que tu récupères, avec Request.UrlReferrer.ToString(), n'est que l'Url de ta page précédente.
D'autre part, le ViewState sert en principe pour les contrôles d'une même page.
En gros, puisque Request.UrlReferrer.ToString()="mapageprecedente.aspx", tu ne fais qu'appeler ta page précédente comme si tu avais un simple hyperlink.
Si, la page2 n'a rien à renvoyer à la page1 lors du retour et qu'il s'agit seulement d'afficher la même page1, pourquoi ne pas utiliser l'historique (comme si tu utilisais le bouton retour du navigateur) et donc faire :

?
L'état des contrôles de la page1 devraient se maintenir, non ?
Mais peut-être ta situation est-elle plus compliquée ?

GGtry
Messages postés
8
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
1 juillet 2008

Merci beaucoup ça fonctionne très bien :)

J'ai mis un petit bout de code javascript :

<script language="JavaScript">
    function functionGoBack()
    {
        history.back(1);
     }
</script>
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonjour,

Comment fonctionne ton bouton retour ?
Est-il du type :
?
Messages postés
8
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
1 juillet 2008

Dans mon page load, je mémorise la page précédente  à l'aide de  :
ViewState["UrlReferent"] = Request.UrlReferrer.ToString();

    protected void btnRetourGeneral_Click( object sender, EventArgs e )
    {
        this.Response.Redirect((String)ViewState["UrlReferent"]);
    }

L'évènement déclenché par mon bouton, me renvoi bien sur la page précédente, mais sans garder l'état du gridview (après la recheche effectuée par l'utilisateur)
Messages postés
8
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
1 juillet 2008

J'aurai aimé utiliser cette fonction de javascript avec un asp button
c'est à dire :

C'est mon bouton, et j'aurai aimé lui mettre OnClick="functionGoBack()" pour faire appel à cette fonction :

<script language="JavaScript">
    function functionGoBack()
    {
        history.back(1);
     }
</script>

Mais ça ne passe pas ...
Quelqu'un aurait une idée ??
Merci ^^
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonjour,

Un bouton asp est fait pour déclencher le postback.
Même s'il est parfois utile d'empêcher le postback après une fonction javascript, ce n'est pas utile dans ton cas, puisqu'un simple button html suffit.
Pour répondre néanmoins plus précisément à ta question, quand tu veux appeler une fonction javascript avec un button asp, il ne faut pas utiliser onclick qui sert côté serveur, mais onclientclick, qui sert côté client.
Seulement, dans ton cas, le retour à la page précédent déclenché par le javascript sera annulé avec le postback.
Tu peux certes annuler le postback en écrivant dans l'appel de ta fonction javascript quelque chose comme onclientclick="mafonction(); return false;". Mais encore une fois, il vaut mieux ici mettre un bouton html, qui ne déclenchera pas de postback, et l'événement onclick...

GGtry