Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [ASP .NET2] Utilisation du control state [ WebForms / WebControl ] (prezz)

vendredi 10 octobre 2008 à 12:25:55 | [ASP .NET2] Utilisation du control state

prezz

Bonjour à tous,
je possède deux pages. Une première avec une liste paginée qui contient un webcontrol que j'ai créé moi-même. Une deuxième avec un détail.

Lorsque je navigue à l'intérieur de ma liste ma persistance de control est correctement gérée (Tri et pagination conservée).
Par contre lorsque je navigue vers ma seconde page et que je reviens à ma page de liste je perds mes données de pagination.
Pourtant après m'être renseigné sur le control state (notemment ici : [ Lien ]), j'ai implémenté ce qui était écrit...

Quelqu'un aurait-il une piste?

D'avance merci

vendredi 10 octobre 2008 à 13:52:24 | Re : [ASP .NET2] Utilisation du control state

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

je pense que c'est normal.

D'après ce que je comprend voici la séquence des actions quetu fais entre tes pages

1. GET                             ==> Page1 ==> remplissage du viewstate
2. Post (viewstate)            ==> Page1 ==> récuperation du viewstate + reremplissage viewstate
3. GET (pas de viewstate) ==> Page2 ==> remplissage viewstate
4. GET (pas de viewstate) ==> Page1 ==> remplissage viewstate

Quand tu reviens sur ta premiere page, ton viewstate n'existe plus, tu n'as donc plus de persistance. Il n'existe pas de solution simple pour résoudre le problème, il faut revoir la logique de la page, et jouer avec des sessions ...
La solution "la plus simple", serait de n'avoir qu'une seule page ca corrigerais ce problème mais ca complexifierais la page et risque grandement de rajouter d'autres problèmes.


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant

vendredi 10 octobre 2008 à 14:30:58 | Re : [ASP .NET2] Utilisation du control state

prezz

Pourtant j'ai utilisé le même prcédé en .NET et cela fonctionnait bien

vendredi 10 octobre 2008 à 14:35:19 | Re : [ASP .NET2] Utilisation du control state

prezz

Au passage je me rends compte que si je suis sur la page 2 et que je rafraichis ma page je retombe sur ma page 1 et quand je récupère mon viewstate et que je le décrypte :
lorsque je suis sur la page 2 j'ai bien dans ce viewstate une donnée qui indique que je suis sur la page 2
Par contre après rafraichissement de la page je n'ai plus l'information sur la page

vendredi 10 octobre 2008 à 14:36:38 | Re : [ASP .NET2] Utilisation du control state

prezz

Pardon quand je parle de page 1 et de page 2 c'est bien évidemment la page 1 et 2 de ma liste paginée (sinon la ca devient incompréhensible )

samedi 11 octobre 2008 à 00:13:51 | Re : [ASP .NET2] Utilisation du control state

ggtry

Bonsoir,

La solution la plus immédiate est d'utiliser l'historique client, et donc un simple retour par javascript : évidemment, cela dépend des restrictions éventuelles que le client impose à son historique (à la limite, dans ce cas, je dirais que c'est de sa faute, mais bon...).
JSonline à raison, je pense, dans son explication.
Dans ce cas, si tu ne veux pas passer par l'historique client, tu dois passer le pageindex de ton gridview à ta page de détail.
La session est une possibilité, ou alors, tu peux aussi lire dans ta page de détail le pagindex du gridview de la page précédente, et le mettre par exemple dans un hiddenfield, qui sera à son tour lu lors du retour... Ce ne serait pas d'une élégance folle, mais ça marcherait. 
Si tu utilises des "buttonlink", pour qu'il y ait postback, et non pas navigation simple, tu pourras lire dans ta page 2 (détails) le pageindex à l'aide de page.previouspage... et le passer dans un hiddenfield. En mettant un autre buttonlink sur ta page 2, qui renvoie à la page de départ (celle de ta gridview), tu pourras lire cet hiddenfield à l'aide de la même méthode, par exemple, en vb (ici sur l'init de la gridview) :

Protected Sub GridView1_Init(ByVal sender As Object, ByVal e As System.EventArgs)
        If Not Page.PreviousPage Is Nothing Then 
            Dim hf As HiddenField = CType(Page.PreviousPage.FindControl("HiddenField1"), HiddenField)
            If Not hf Is Nothing Then
                GridView1.PageIndex = hf.Value
            End If
        End If   
    End Sub

Evidemment, il faut se méfier dans ce cas de la manière d'accéder à ta page (pour éviter l'ambiguïté éventuelle sur l'hiddenfield). Mais c'est une simple convention de nom à adopter.
Ce n'est pas forcément plus compliqué qu'avec une session, puisqu'il faut prévoir lors des sessions le cas où l'utilisateur ne revient pas directement sur la page précédente... à moins évidemment que tu veuilles conserver de manière plus durable la pagination de ta gridview.

GGtry



Cette discussion est classé dans : asp, liste, control, state, net2


Répondre à ce message

Sujets en rapport avec ce message

programmation ASP liste de choix événements [ par didi ] Bonjour: je suis un jeune dévéloppeur en ASP et je suis en ce moment en train d'utiliser une liste de selection qui se charge à partir d'une table j'a Recherche une liste de toutes les fonctions ASP ( Max, Min, etc.. ) [ par pcayrol ] J ai fait ^plusieurs sites mais je ne trouve pas une liste de methodes ASP.Merci !Pascal novice recherche dévelloppeurs confirmés...(ASP,VBS,JVS) [ par olympien13 ] Bonjour à tous,Etant novice, j'aurais voulu savoir si qlq'1 connaissait la solution à monpb.Je v essayer de m'expliquer.Je dispose de 2 listes déroula liste deroulante ASP [ par julevosgien ] je dois recuperer un nom dans une liste deroulante qui est dans une base de donnees et le reintroduire dans une autre tableplease, help me, je suis en control activeX et Asp [ par tgenty ] Bonjour,Je cherche à appeller des méthodes et recupérer des attributs d'un controle activeX insérer dans une page ASP.J'ai donc utilisé la balise OBJE Formulaire (liste déroulante) et ASP [ par tigrourc9 ] salut à tous j'ai actuellement une db en mysql (id, nom, prenom, age, pseudo, sexe) que j'interroge en asp. je souhaiterais créer une liste déroulante Problème de référence ASP [ par redee ] Salut,Comme le dit mon sujet, j'ai un problème de passage de référence.En fait, j'ai un formulaire contenant une liste déroulante ainsi qu'un bouton d Problème de LinkButton en asp.net [ par amorosalain ] SAMEn programmant, j'ai découvert un petit problème.A gauche, une liste d'activité sous la forme d'une liste de LinkButton vertical. Au dessus les let Probleme en asp (liste deroulante) [ par glougloutama ] J'aime pas la programmation! Vive le réseau et la Q.O.S. problème en ASP [ par dreufys ] Salut à tous excusez moi de vous déranger mais j ai un petit problème, je suis un peu bloqué sur un programme en asp.Il faudrait que je gère un écran


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.