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 :

Rafraichir DropDownList après modification des données


Sujet :

ASP.NET

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Rafraichir DropDownList après modification des données
    Bonjour,

    J'ai un problème que je n'arrive pas à résoudre, même après avoir fait de multiples recherche sur le net.
    Voici mon problème :
    J'ai un DropDownList qui est chargé au moment de l'affichage de la page avec un SqlDataSource. Jusque là tout va bien.
    Sur cette même page, j'ai ,dans un UpdatePanel, un FormView qui me permet d'ajouter des enregistrements dans la table qui contient les données de mon dropdownlist. Jusque là toujours ok, mes données sont bien enregistrés dans la base.
    Maintenant le problème, c'est que je voudrai que mon DropDonwList soit recharger avec la valeur qui vient d'être enregistré, mais sans recharger la page, uniquement le DropDownList.

    J'ai tester la méthode DDL.DataBinding() mais j'ai l'erreur :
    Les méthodes de liaison de données telles que Eval(), XPath() et Bind() peuvent uniquement être utilisées dans le contexte d'un contrôle lié aux données.
    Je ne sais plus comment faire, est ce que quelqu'un peut m'aider ?

    PS: si j'ai mal expliquer mon problème demander moi plus d'explication.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Hello,

    Si tu ne veux pas recharger toute ta page, tu dois placer ton DDL dans l'UpdatePanel, ou en créer un autre spécialement pour le DDL (je te conseille la première solution moins propre mais plus rapide).

    Tu dois biensur gérer l'update de ton DDL lorsque les méthodes de l'UpdatePanel sont appelées. Si l'action utilisateur est seulement l'ajout, tu ajoutes la dernière ligne créée dans ton DDL, par contre si il y a des mises à jour ou des suppressions, tu devras recharger entièrement ton DDL.

    Sinon tu dois pouvoir peupler ton DDL avec DDL.DataSource = taSource
    DeDonnées et appeler uniquement DDL.DataBind() lors d'inserts.

    A+
    Nasame

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de ton aide Nasame, mais ça ne marche toujours pas.
    Je vais détaillé un peu plus ...

    Dans mon UpdatePanel, il y a ma DropDownList, un LinkButton, un Panel (qui contient un FormView), et un ModalPopUpExtender. Ce UpdatePanel est lui même dans un FormView, et ce FormView dans une Master Page.

    Plus clairement, ce qui est contenu dans la Master Page ça donne ça :

    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
    18
    19
    20
    21
    22
    23
    24
    25
     
    <asp:FormView ID="FormAjoutMateriel" runat="server" ... >
        <asp:UpdatePanel ID="UpdateModele" runat="server">
            <ContentTemplate>
     
                <asp:DropDownList ID="ModeleMat" runat="server" DataSourceID="Source_ModeleListe" 
                    DataTextField="designation" DataValueField="modele" SelectedValue='<%# Bind("modele") %>' >
                </asp:DropDownList>
     
                <asp:LinkButton id="BoutonAjoutModele" runat="server" PostBackUrl="return false;">Ajouter</asp:LinkButton>
     
                <asp:Panel ID="AjoutModelePanel" runat="server">
                    <asp:FormView ID="FormAjoutModele" ... >
                        ici il y a un formulaire, qui permet d'ajouter des enregistrement dans la table [modeles]
                    </asp:FormView>
                </asp:Panel>
     
                <cc1:ModalPopupExtender ID="MPEAjoutModele" runat="server" TargetControlID="BoutonAjoutModele" 
                    PopupControlID="AjoutModelePanel" DropShadow="true" PopupDragHandleControlID="TitreAjoutModelePanel" 
                    RepositionMode="RepositionOnWindowResize" BackgroundCssClass="BackGrdPanelModal">
                </cc1:ModalPopupExtender>
     
            </ContentTemplate>
        </asp:UpdatePanel>
    </asp:FormView>
    PS: j'ai volontairement enlever certaines parties du code. mais l'essentiel est ici.

    Le fonctionnement désiré est :
    La page qui s'affiche, charge dans le DropDownList la liste des modèles. Là ça marche (avec le SqlDataSource), ensuite si l'utilisateur clique sur le LinkButton "Ajouter", le Panel "AjoutModelePanel" s'affiche grâce au composant ModalPopupExtender, là aussi tout fonctionne. Donc le formulaire pour ajouter un nouveau modèle est affiché, on ajoute le modèle, là tout fonctionne également, le modèle s'insère bien dans la base, mais quand le formulaire d'ajout disparait pour revenir à la page, je voudrai que la DropDownList qui contient les modèles soit raffraichit avec le modèle qui vient d'être ajouté.

    J'espère avoir tout bien expliqué
    Je suis toujours bloqué ici, c'est énervant de ne pas reussir une chose simple ...

  4. #4
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut Même problème :(
    Bonjour à tous.

    Je me permets de remonter ce topic puisque je rencontre le même problème: la mise à jour d'une dropdownlist en utilisant le ModalPopupExtender.

    Donc en gros, j'ai ma dropdownlist, le modalPopupExtender et le panel dans un updatepanel. Je souhaite ajouter un élément dans ma liste en cliquant sur un bouton d'ajout juste à côté de la dropdownlist. Pour cela mon code behind associé au bouton valider de la popup réalise l'INSERT dans ma BDD [OK] et demande la réinitialisation des items de la dropdownlist [NOK]...

    Pourtant je ne rencontre pas d'erreur, et vu que tout se trouve dans un updatepanel, je ne vois pas la raison pour laquelle ma dropdownlist n'est pas rafraîchi? J'ai peut-être oublié quelquechose mais quoi?

    ....

    J'ai supprimé le contenu de ce message, puisque je me suis rendu compte que l'erreur vient en fait de ... MOI! Ma requête SQL qui me permettait de réinitialiser la liste vérifie un critère que le nouvel enregistrement ne vérifiait pas, donc forcément, il n'apparaissait pas dans la liste.

    Fausse alerte

    Cordialement.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2012, 13h56
  2. Rafraichir une table liée après modification des liaisons
    Par Diablange dans le forum VBA Access
    Réponses: 5
    Dernier message: 24/08/2010, 09h10
  3. Modifications des données après filtre butterworth
    Par yoyo42300 dans le forum Signal
    Réponses: 17
    Dernier message: 21/01/2010, 11h08
  4. Réponses: 2
    Dernier message: 19/08/2008, 15h01
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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