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 en popup pour éditer une ligne d'un Gridview


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut Formview en popup pour éditer une ligne d'un Gridview
    Bonjour,

    Je voudrais utiliser un Formview dans une fenêtre popup pour modifier les informations correspondant à une ligne d'un Gridview affiché à l'écran.

    Pour être précis je désirerais obtenir le comportement suivant :
    - J'ai un Gridview qui me donne la liste des valeurs des principaux champs d'une table.
    - Un click sur un bouton "éditer" d'une des lignes du Gridview ouvre une fenêtre popup contenant un FormView avec tous les champs modifiables de la ligne cliquée.
    - Si l'utilisateur valide ses modifications alors la fenêtre popup se ferme et les éléments correspondant se mettent à jour dans le Gridview.

    En fait cela correspond au mode d'édition "en ligne" d'un Gridview, sauf que la modification des champs se fait dans un FormView à part.

    Mon problème est que je ne sais pas comment remplir mon FormView lorsque l'utilisateur clique sur le bouton éditer du Gridview et inversement comment remettre à jour le GridView une fois les modifications effectuées.

    J'ai bien une solution, mais elle consiste à générer de lourds appels Javascript difficiles à maintenir. Existe t-il une solution simple utilisant les fonctionnalités du Framework ?

    Merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Utilise un modal popup de l'ajaxcontroltoolkit....

    Tu ouvre ton popup sur le clic du gridview... Une fois la mise donnée saisie dans le modalpopup tu intercepte l'évenemment Onclick du bouton que tu auras mis dans ton modal popup ( ou l'évenement Ontextchanged si tu veux pas de bouton)...


    Ensuite via le code behind dans l'évenement tu fais :

    - Mise a jour de ta table ( enfin ton enreg)
    - Bind du gridview..

    Et hop le tour est joué...

    Pas besoin de javascript l'ajax est la pour toi

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Merci pour la réponse, mais je ne comprend toujours pas comment :
    • Comment faire un Bind de mon Formview sur l'enregistrement à éditer
    • Comment mettre à jour le GridView en fin d'opération


    Un petit exemple de code m'aiderait surement beaucoup.

    Merci encore en tous cas.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Allez un bout de code parce que je suis en forme aujourd'hui

    Le gridview ( simplifié que les balises qui m'intéressent)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     <asp:GridView ID="GridView_View" runat="server"> 
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                   <cc1:ModalPopupExtender ID="ModalPopup" runat="server" OkControlID="btn_Ok" CancelControlID="btn_cancel"  PopupControlID="panel_Modal" TargetControlID="toto" ></cc1:ModalPopupExtender>                                     
    <asp:Panel ID="panel_Modal" runat="server" CssClass="ModalPopup">                                                         
       </Columns>
        </asp:TemplateField>
    </ItemTemplate>
     </asp:GridView>
    Comme tu le voit tu peut mettre ce que tu veux dans le panelModalpopup ( dans ton cas tes zones de saisies)...

    Une fois la saisie résalisée tu te place dans l'évennement souhaité genre clic du bouton de mise jour de ton panelmodalpopu

    puis tu fait

    Je lance ma requête sur ma table de donnée en mise a jour par rapport a la clé du gridview...

    puis tu bind ton gridview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    GridView_View.databind();

    voili voilou....

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Merci encore une fois, mais désolé, je ne comprend toujours pas.

    Je ne vois toujours pas comment écrire le binding de mon FormView, ni les boutons de commande de mon GridView

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2009
    Messages : 133
    Points : 158
    Points
    158
    Par défaut
    Et si tu laissais VS générer tout le code nécessaire pour ton FormView ? Tu mets un FormView sur ta webform, tu passes en mode design, smart-tag, tu créés un nouveau datasource, soit un ObjectDataSource, soit un LinqDataSource, etc, et là comme par magie, tout le code nécessaire avec tous les champs est généré !
    nachtigal.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    ben moi je peux pas faire mieux.... désolé

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/05/2006, 09h19
  2. Une requête pour éditer plusieurs lignes.
    Par Anduriel dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/05/2006, 20h24
  3. Réponses: 4
    Dernier message: 24/09/2005, 09h52
  4. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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