Mémoriser l'état d'un gridview

Résolu
sofuzion Messages postés 8 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 1 juillet 2008 - 19 juin 2008 à 23:02
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 - 23 juin 2008 à 18:34
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

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
20 juin 2008 à 10:15
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
3
sofuzion Messages postés 8 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 1 juillet 2008
20 juin 2008 à 10:31
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>
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
20 juin 2008 à 00:22
Bonjour,

Comment fonctionne ton bouton retour ?
Est-il du type :
?
0
sofuzion Messages postés 8 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 1 juillet 2008
20 juin 2008 à 08:49
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sofuzion Messages postés 8 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 1 juillet 2008
23 juin 2008 à 17:09
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 ^^
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
23 juin 2008 à 18:34
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
0
Rejoignez-nous