IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[FormView] Reset lors de l'autopostback d'une DropDownList


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut [FormView] Reset lors de l'autopostback d'une DropDownList
    Salut à tous !

    J'ai un FormView, en insert mode, dans lequel j'ai entre autres une DropDownList remplie dynamiquement lors de son chargement. J'aimerais, lorsque l'utilisateur choisi une valeur dans cette DropDownList, que certains champs du FormView soient automatiquement remplis.

    J'ai donc mis AutoPostback = true dans la DropDownList, et me suis enregistré à l'événement OnSelectedIndexChanged pour remplir mes champs selon la valeur sélectionnée.

    Le problème, c'est que lorsque le formulaire est soumis par la DropDownList, tout le FormView est remis à zéro ! Je précise que ce formview est situé dans un UpdatePanel (mais à mon humble avis le problème ne vient pas de là).

    En fait, le problème surgit dès que je lie mon FormView à une DataSource. Dans le cas simple suivant, ça fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <asp:FormView ID="__fv" runat="server"
        DefaultMode="insert"
        >
        <InsertItemTemplate>
            <asp:DropDownList ID="__test" runat="server"
                OnLoad="Test_Load"
                OnSelectedIndexChanged="Test_Changed"
                AutoPostBack="true"
            >
                <asp:ListItem Text="asdf" Value="" />
            </asp:DropDownList>
     
            <asp:TextBox ID="__text" runat="server"
                />
        </InsertItemTemplate>    
    </asp:FormView>
    Code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        protected void Test_Load(object sender, EventArgs e) {
            if (!IsPostBack) {
                ((DropDownList)this.__fv.FindControl("__test")).Items.Add("a");
                ((DropDownList)this.__fv.FindControl("__test")).Items.Add("b");
                ((DropDownList)this.__fv.FindControl("__test")).Items.Add("c");
                ((DropDownList)this.__fv.FindControl("__test")).Items.Add("d");
                ((DropDownList)this.__fv.FindControl("__test")).Items.Add("e");
            }
        }
     
        protected void Test_Changed(object sender, EventArgs e) {
            ((TextBox)this.__fv.FindControl("__text")).Text = ((DropDownList)this.__fv.FindControl("__test")).SelectedValue;
        }
    Mais dès que j'ajoute une DataSource et que je lui lie le FormView, c'est fini !

    Quelqu'un a-t-il une idée ? N'hésitez pas si vous voulez plus de précisions, et merci d'avance !

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    tout depend de ce que tu mets dans ton datasource?
    et en mettant enableviewstate=true sur le formview ca le fait plus?

    sinon fait un findControl une seule fois. c'est couteux comme opération.

  3. #3
    Membre éclairé Avatar de Wookai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2004
    Messages : 307
    Par défaut
    Sauf erreur, le viewstate est activé par défaut, non ?

    Pour le FindControl on est d'accord, c'était de la pure flemme, j'ai vite fait copier/coller...

    Sinon, ma DataSource contient un objet loadé depuis la DB, rien de bien méchant.

    EDIT: changer le viewstate à true/false ne change aparemment rien (c'est bien ce que je pensais...)

Discussions similaires

  1. Probleme d'autopostback avec une dropdownlist
    Par Oberown dans le forum ASP.NET
    Réponses: 4
    Dernier message: 06/12/2011, 12h48
  2. Afficher une dropdownlist lors de modif dans une DataGrid
    Par MiJack dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/11/2004, 17h42
  3. [ADO] Probleme lors de l'execution d'une requete...
    Par NoisetteProd dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 12h43
  4. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo