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 :

DataGrid // Debutant


Sujet :

ASP.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut DataGrid // Debutant
    Bonjour , voilà j'suis nouveau et je suis désolé si il y a deja un topic qui traite du meme sujet , j'ai regardé un peu mais il y en a tellement : O

    j'ai un problème , j'vous explique... j'débute en C# et on m'a demandé de modifier une application (ASP /C#).

    j'ai donc repris le code et il y a un DataGrid. dont voici u nextrait du code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Columns>
         <asp:TemplateColumn>
    <ItemTemplate>
    <asp:ImageButton runat="server" Visible="True" ImageUrl="images" AlternateText="<%#altImage%>" CommandName="view" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"commandeid") %>'>
    										</asp:ImageButton>
     
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="commandeid" ItemStyle-CssClass="Normal" HeaderStyle-CssClass="NormalBold" />

    En fait je ne comprends pas le CommandArgument='
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# DataBinder.Eval(Container.DataItem,"commandeid")
    Pcq quand je clique sur l'image.gif , je change de page, alors que jene vois aucune fonction...

    Vous comprenez ce que je veux dire ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Salut,

    Regarde dans ton C#, tu dois avoir une méthode du style
    Protected void MyDataGrid_ItemCommand ou MyDataGrid_RowCommand (je m'en souviens plus exactement pour la datagrid)
    dans laquelle, il récupère ton CommandName et ton CommandArgument et effectue le traitement adéquate selon ces 2 valeurs.

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Regarde plutôt dans ton code behind une méthode qui s'appelle "view" c'est cette méthode qui est appelée par le click sur ton imageButton (en vert) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:ImageButton runat="server" Visible="True" ImageUrl="images" AlternateText="<%#altImage%>" CommandName="view" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"commandeid") %>'>
    										</asp:ImageButton>
    C'est cette méthode "view" qui utilise ensuite les arguments de ton bouton qui est en fait le champ "commandeid" de la source de données de ton datagrid.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    A mon avis il n'y a pas de méthode View à proprement parler, c'est plutôt un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
      {
           if(e.CommandName=="View")
        {
          //Instructions 
        }
    }
    Ou de même facon dans l'évenement "OnItemCommand"

  5. #5
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Oups oui c'est juste, j'ai confondu OnCommand et CommandName

    mea culpa !

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Je suis toujours sur la meme application...

    Et je veux ajouter un nouveau boutton image pour savoir supprimer une ligne donc je rajoute ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:ImageButton runat="server" Visible="True" ImageUrl="delete" AlternateText="<%#altImage%>" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"commandeid") %>'>
    										</asp:ImageButton>
    Mais j'aimerai rajouter une fonction javascript avant de supprimer la ligne pour une une demande de confirmation...

    Je ne vois pas trop ou la placer...

    Si quelmqu'un pouvait me venir en aide Merci

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    De tête, c'est quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:ImageButton runat="server" Visible="True" ImageUrl="delete" AlternateText="<%#altImage%>" CommandName="delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"commandeid") %>' OnClientClick="javascript:return confirm('Are you sure ?');"
    ></asp:ImageButton>
    Cherche du côté de OnClientClick pour plus de détails.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    tu peux appeler ton script en code behind avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterClientScriptBlock()
    Ou bien définir ton script dans ta page (ou master page) et l'appeller sur le onclientclick de ton image

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Ok merci !

    j'vais plutot tenter le onClientClick !

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Heu une dernière question :

    Pour mon Onclick j'ai besoin d'y associer une ressource


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClientClick='return confirm("<%# RessourceManager.GetString("GestionCommande.Sauver",Culture)%>");'
    J'utilise déjà des Ressources dans mon .cs et ça fonctionne très bien

    Donc j'dois rien impporter ?

    Pourquoi ca ne fonctionne pas ? C'est une histoire de guillemets ?

    encore merci !

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Regarde le rendu html de ton image button avec Firebug (Firefox) ou les outils de développement de Chrome et tu devrais tout de suite comprendre le problème.

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Heu, je suis sensé voir quoi ? :s

    Le problème c'est que c'est une IFrame et FireBug affiche l'html de la page et pas de l'IFrame...

    J'ai affiché le code source , j'vois l'html de l'IFrame...

    J'avoue , j'suis un peu paumé.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Tu dois pouvoir afficher uniquement le code html de l'IFrame.
    Avec Chrome, c'est clic-droit sur la frame => Open Frame in new tab
    Avec Firefox, je ne m'en souviens plus mais ça doit pas bien être différent.

    Et ensuite tu utilises Firebug pour afficher le code html de ton imageButton (présent dans ton IFrame)

    Edit : Je viens d'essayer avec Firebug et il m'affiche bien le contenu l'IFrame. Je comprends pas bien comment tu fais ?!?

  14. #14
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Ah oui tu avais raison, c'est affiché !

    Mais en quoi, je vais réussir à résoudre mon problème grâce à ca ?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Comme tu devrais probablement le savoir, le rendu de l'ASP.NET, c'est, en très gros, du html et du javascript.

    Quel est le rendu html de ton image bouton ? (affiche le ici pour qu'on t'aide)
    Dans ce rendu html, tu devrais trouver un OnClick (qui correspond au OnClientClick dans ton ascx), Qu'est ce qu'il y a dans le OnClick comme valeur ("return confirm ...") ?

  16. #16
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return confirm("<%# RessourceManager.GetString("GestionCommande.Sauver",Culture);%> ");WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("dgCommandes$ctl03$ctl00", "", true, "", "", false, false))

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    ça te choque pas de voir que ton code est pas interprété lors du rendu html ?

    Essaye plutôt de faire quelque chose dans ce genre (non vérifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OnClientClick='<%# "return confirm('" + RessourceManager.GetString("GestionCommande.Sauver", Culture) + "');" %>'

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Heu le return confirm doit donc être dans la balise <%# %> ?

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    En temps normal, tu n'es pas obligé mais comme tu appelles la méthode RessourceManager.GetString qui est côté serveur, j'ai pris l'habitude de faire la concaténation comme cela (peut être que ya une autre solution mais celle-ci fonctionne tout le temps)

    Si tu regarde entre les balises <%# %>, je concatène
    • return confirm('

    • RessourceManager.GetString("GestionCommande.Sauver", Culture)

    • ');


    afin que le résultat final renvoyé soit : return confirm('Are you sure ?');

  20. #20
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Par défaut
    Ok ok , mais il me souligne le code en bleu disant que c'est mauvais...

    j'ai essayé d'échanger les apostrophes et les guillemets, on ne sait jamais qu'il y a ait une confusion avec

    "GestionCommandes.Sauver" mais rien y fait :s

    pfff quel casse-tête pour 3 guillemets quand même !

Discussions similaires

  1. [Debutant] CheckBox et Datagrid
    Par trihanhcie dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/01/2008, 14h39
  2. [debutant] jtable est il comme le datagrid?
    Par 7rouz dans le forum Composants
    Réponses: 1
    Dernier message: 08/03/2007, 15h05
  3. [Debutant][VBA ADO][Datagrid]Ajout de colonnes
    Par walden dans le forum Access
    Réponses: 4
    Dernier message: 19/05/2006, 17h59
  4. [VB.NET] [SENIOR DEBUTANT] Datagrid et Images
    Par Zinneke dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/12/2005, 18h19
  5. [C#][debutant]deplacement dans un datagrid
    Par christophebmx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/11/2005, 14h48

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