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 :

[C#] DataGrid


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut [C#] DataGrid
    slt

    j'ai creer (en aspx) un datagrid contenant une colonne avec des boutons images et je n'arrive pas a envoyé lors d'un clique sur ce bouton le numero de la ligne cliqué (de preference tous dans l'aspx)
    j'arrive bien a rajouter une methodde "OnClick" mais pas moyen de recuperer le numero de la ligne

    aidez-moi!

    alexis

  2. #2
    Membre éprouvé Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Par défaut
    salut,

    tu rajoute un événement "onClick" javascript ? Mais je pense que tu récupèrer l'événement en code-behind (rectifie moi si je me trompe)

    sinon pour récupère le clic en code-behind, soit tu lui donne comme nom de commade (propriété commandName) "select, update, etc..) et tu le récupère grâce au fonction prédéfini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub DG_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG.DeleteCommand
    ...
    end Sub
    ou tu lui donne un autre nom (à commandName) et tu utilise la fonction générique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub DG_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DG.ItemCommand
     
    select case e.CommandName
    case "MonCommandName"
    etc
    case ...
    end select
     
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    j'utilise un script C#

    j'aimerais faire tout dans l'aspx

    comment recuperer le numero de la ligne?!

    ca m'aide un peu quand meme
    Merci

    Alexis

  4. #4
    Membre éprouvé Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Par défaut
    pour récupèrer le numéro de la ligne

    e.Item.ItemIndex

    tu peux aller sur le site des msdn

    il y a tous les objets avec les membres, etc

  5. #5
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    qu'est-ce que "DG_ItemCommand"

    j'essaye de retranscrire ton code en C# mais je galere un peu
    j'ai mis une propriete a mon bonton CommandName="updateDonnees"

    et je fais une methode dans le code behind

    private void DG_ItemCommand(Object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){}

    mais cette methode n'est pas appelé par le bouton

    sais tu ou est mon erreur??

    Alexis

  6. #6
    Membre éprouvé Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Par défaut
    excuse moi, j'ai oublié de préciser que DG est le nom de ton datagrid , donc il faut le changer

  7. #7
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    Marche pas...

    tu peux detailler un peu l'explication
    surtout la creation du dataGrid
    -met tu la propriete OnItemCommand="..."?
    -que precise tu comme propriete de ta colonne?
    -est-ce que ca marche avec un ImageButton?
    -Comment appelé "DG_ItemCommnd"?
    -cette methode est-elle predefinis en C#?

    Merci

    Alexis

  8. #8
    Membre éprouvé Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Par défaut
    trouvé dans les msdn

    lien vers msdn

    le nom du datagrid est ItemsGrid

    coté html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:datagrid id="ItemsGrid" runat="server" commandName="nomDeTaCommande"></asp:datagrid>
    coté C#

    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
    26
     
    void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
          {
     
             switch(((LinkButton)e.CommandSource).CommandName)
             {
     
                case "Delete":
                   DeleteItem(e);
                   break;
     
    case "nomDeTaCommande":
     
    uneFunction(e);
    break;
     
                // Add other cases here, if there are multiple ButtonColumns in 
                // the DataGrid control.
     
                default:
                   // Do nothing.
                   break;
     
             }
     
          }

    dsl mais je suis pas sur de la syntaxe du C#
    sinon ta colonne, c'est forcément une colonne modèle, et ça marche pour les images boutons, je le fais très souvent

    en espérant que ça t'aide

  9. #9
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:datagrid id="ItemsGrid" runat="server" commandName="nomDeTaCommande"></asp:datagrid>
    la propriété CommandName n'existe pas dans un dataGrig!

  10. #10
    Membre éprouvé Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Par défaut
    oui je veux mettre la charrue avant les boeufs

    c dans imageButton qu'il faut mettre commandName

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:ImageButton id="img" runat="server" commandName="nomCommande"></asp:ImageButton>

  11. #11
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    ca marche !!!

    mais je vais t'embetter encore un peu car j'ai fait ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <asp:datagrid id="DG_detail" OnItemCommand="ItemsGrid_Command" runat="server" >
    <Columns>
    <asp:ButtonColumn ButtonType=LinkButton CommandName="up" Text="valider"></asp:ButtonColumn>
    </Columns>
    </asp:datagrid>
    dans l'aspx puis un script :
    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
     
    <script language=C# runat=server>
    void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
     {
        switch(((LinkButton)e.CommandSource).CommandName)
           {
                case "up":
                 ...code...
                break;
                default:
                   // Do nothing.
                   break;
             }
          }
     
    </script>
    ca ca marche !! cnickel

    le probleme c'est que c'est un LinkButton!!
    et quand je change le type en ImageButton ou PushButton ca marche plus

    la syntaxe doit etre differente impossible de changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    switch(((LinkButton)e.CommandSource).CommandName)
    en (PushButton)e.command..
    ou en (ImageButton)e.command..

    car la il me jete

    A tu une idée

    Merci beaucoup
    Alexis

  12. #12
    Membre éprouvé Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Par défaut
    remplace ta buttoncolumn

    par une colonne template ou tu met ton imageButton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <asp:TemplateColumn>
    <ItemTemplate>
    <P align="center">
    <asp:ImageButton id="ImgBtDelete" runat="server" ImageUrl="icon-delete.gif" CommandName="delete">
    </asp:ImageButton>
    </P>
    </ItemTemplate>		
    </asp:TemplateColumn>

  13. #13
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    oui ca c'est ok

    et il faut enlever le switch car ds ce cas il ne sert a rien

    par contre c'est bizarre si je fais un imageButton ca marche pas
    par contre je fais un linkButton ca marche, pui je change le linkButton par mon Imagebutton, la ca marche je comprends pas
    je pense qu'avec le linkbutton visual crée un code mais pas avec l'imagebutton et quand on remet l'image le code existe tjs et ca marche

    je sais pas si g été clair en tout cas il faut tjs faire un linkButton en premier sinon jamais il n'appelera le code

    Chelou .. en tout cas c'est cool!! -> pb resolu

    Merci bien ton aide a été tres précieuse

    Alexis

  14. #14
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    c'est pareil pour CommandName ici ca sert a rien!

  15. #15
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 40
    Par défaut
    voici le code final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <asp:datagrid id="DG_commande" runat="server" OnItemCommand="DG_commande_Command" >
        <Columns>
             <asp:TemplateColumn HeaderText="Modification">
    	<ItemTemplate>
    	<asp:ImageButton ID="bt_valider" runat="server" ImageUrl="images/valider2.jpg"></asp:ImageButton>
    	</ItemTemplate>
             </asp:TemplateColumn>
         </Columns>
    </asp:datagrid>
    pour le HTML-ASPX et la suite dans un script C#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="C#" runat="server">
     
    void DG_commande_Command(Object sender, DataGridCommandEventArgs e)
    {
    //recuperation de la ligne
    int ligne = e.Item.ItemIndex;
    //recupération d'un element du datagrig
    Label lab_id = (Label)DG_commande.Items[ligne].FindControl("id_commande");
    int id_com = Int32.Parse(lab_id.Text); 
     
    </script>
    }
    voila attention comme expliqué précedemment ce code marche si vous avez commencez par faire un LinkButton a la place de l'image et que vous avez changer de type de bouton apres avoir tester que tout marcher bien avec le LinkButton

    bon courage a tous 8)

    Alexis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. Pb d'update dans une DataGrid
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2003, 14h11
  3. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  4. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  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