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#2.0]Récuperation évements sur CheckBox dans un GridView


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Points : 53
    Points
    53
    Par défaut [C#2.0]Récuperation évements sur CheckBox dans un GridView
    Voici mon GridView :
    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
    27
    28
    29
     
    <asp:GridView ID="GridView1" runat="server" style="left: 29px; position: absolute; top: 206px" Height="171px" Width="473px" AutoGenerateColumns ="False" CellPadding="4" ForeColor="#333333" GridLines="None" >
                    <Columns>
                        <asp:BoundField DataField="Alias" HeaderText="Nom" />
                        <asp:TemplateField HeaderText="Format">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList3" runat="server">
                                    <asp:ListItem Value="string">String</asp:ListItem>
                                    <asp:ListItem Value="int">Numérique</asp:ListItem>
                                    <asp:ListItem Value="index">Index</asp:ListItem>
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Aggrégation">
                            <ItemTemplate>
                                <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged"/>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Type d'aggrégation">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList4" runat="server">
                                    <asp:ListItem Value="sum">sum()</asp:ListItem>
                                    <asp:ListItem Value="avg">avg()</asp:ListItem>
                                    <asp:ListItem Value="n">variable N</asp:ListItem>
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
    J'ai une colonne de CheckBox et je cherche à savoir si ils sont checké.

    J'essai avec les évèment mais je ne capture jamais l'évènement

    j'ai mis ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chk = (CheckBox)sender;
            GridViewRow Maligne = (GridViewRow)chk.NamingContainer;
            Int32 IndexLigne = Maligne.RowIndex;
            string MaDataKey = GridView1.DataKeys[IndexLigne].Value.ToString();
        }
    J'aimerai comprendre pourquoi ça marche pas mais je voudrais savoir aussi comment aller lire les infos seulement quand je sais que l'utilisateur à fini (tout d'un coup)....

    Un dernier truc bizarre: j'ai essayer de faire comme dans la réponse de Erakis mais quand j'ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="MonCheckBox" postback="true"
    il me dit que ça existe pas ...

    d'avance pour votre aide

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 44
    Points
    44
    Par défaut
    Salut,

    Lorsque l'utilisateur valide son formulaire voila comment récuperer les valeurs de tes checkboxes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            foreach (GridViewRow r in gridView1.Rows)
            {
                if (r.RowType == DataControlRowType.DataRow)
                {
                    Control ctrl = r.FindControl("CheckBox1");
                    if (null != ctrl)
                    {
                        CheckBox cbx = (CheckBox)ctrl;
                        bool isCheck = cbx.Checked;
                    }
                }
            }
    J'éspere avoir répondu a ta question,

    Greg.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Alors merci mais il me renvoit toujours des falses alors que mince j'ai bien coché les cases....

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 44
    Points
    44
    Par défaut
    Es-tu sur de bien parcourir ton gridview avant de le rebinder, je m'explique :

    1. Coche les case que tu veux sur ton gridview
    2. Postback
    3. Bind du gridview
    3. Parcour du gridview

    Cela n'e te ramenera jamais le resultat souhaite...

    Fait attention aussi à l'ordre des evenements (page load, ...), afin d'être sûr que tu ne le modifies pas avant ta consultation.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Oups Oups

    En effet, il passe bien dans le PageLoad et donc rebind ma GridView....
    Je suis très très debutant::::::::::::

    Comment je dois faire s'il te plaît?

    d'avance greg ou quelqu'un d'autre

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 44
    Points
    44
    Par défaut
    Mais ton databind (et autre si necessaire) dans cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (Page.IsPostBack == false)
    {
     
        //Ton code a executer uniquement la premiere fois
     
    }
    Voila,

    Greg

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Points : 53
    Points
    53
    Par défaut
    Bingo

    Merci pour ta patience, greg


    Ps: j'apprends vite mais il faut m'expliquer longtemps...

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 44
    Points
    44
    Par défaut
    Content pour toi que ca marche ...
    @++,
    Greg

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

Discussions similaires

  1. Case à cocher (checkbox) dans un gridview
    Par dragazor dans le forum C#
    Réponses: 2
    Dernier message: 28/04/2010, 01h09
  2. Colonne checkbox dans un gridview
    Par Abac_Angelique dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/10/2009, 11h30
  3. état de checkbox dans une gridview
    Par C_C dans le forum ASP.NET
    Réponses: 12
    Dernier message: 06/08/2008, 15h36
  4. Réponses: 7
    Dernier message: 09/01/2008, 10h20
  5. manipuler des checkbox dans un gridview
    Par intissar_g dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/05/2007, 08h23

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