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 :

Décocher toutes les checkbox


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Par défaut Décocher toutes les checkbox
    Bonjour, actuellement en train de travailler sur une page aspx, je n'arrive pas à réaliser une méthode pour décocher toutes les checkbox de ma page.

    J'ai pour le moment fait ceci mais sans succès : ( lors du débugage, les webcontrol ne sont pas pris en compte dans ma boucle )

    Code pour vérifier si au moins une checkbox est cochée
    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
     
     
    ' renvoie vrai si au moins une checkbox est cochée'
        Private Function VerifAllCheckbox()
            Dim result As Boolean
            result = False
     
            Dim i As Object 
            For Each i In Me.Controls
                If TypeOf i Is CheckBox Then
                    If CType(i, CheckBox).Checked = True Then
                        result = True
                    End If
                End If
            Next
     
            Return result
        End Function
    Code pour décocher les checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        ' décoche toutes les checkbox'
        Private Sub Decocher()
     
            Dim i As Object
            For Each i In Me.Controls
                If TypeOf i Is CheckBox Then
                    CType(i, CheckBox).Checked = False
                End If
            Next
     
        End Sub
    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Deux choses :
    • Tu pourrais faire cela en Javascript pour que ce soit plus User-Friendly (enfin, cela dépend du contexte évidemment). Tu peux trouver des sources simples sur ce forum ou via Google.
    • Concernant ta méthode en code-behind, tu ne fais pas de parcours récursif de tes contôles, normal que ça ne fonctionne pas correctement. (d'ailleurs tu pourrais utiliser Linq To Object pour parcourir des contrôles).
    En espérant t'avoir aidé.

  3. #3
    Membre éclairé Avatar de hamouda64
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 63
    Par défaut
    Voilà des petits exemples pour s'inspirer qui permet de décocher tes checkbox qui sont sur une page

    Cas "checkBox dans la même page" :

    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
    30
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Page.aspx.cs" Inherits="CheckBox" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:CheckBox ID="CheckBox1" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox2" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox3" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox4" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox5" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox6" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox7" runat="server" />
        </div>
        <asp:Button ID="cmdDecoche" runat="server" Text="Décocher" 
            onclick="cmdDecoche_Click" />
        </form>
    </body>
    </html>
    CodeBehind
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    public partial class Page: System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
        protected void cmdDecoche_Click(object sender, EventArgs e)
        {
            foreach (Control masterControl in Page.Controls)
            {
                foreach (Control formControl in masterControl.Controls)
                {
                    if (formControl is System.Web.UI.WebControls.CheckBox)
                    {
                        System.Web.UI.WebControls.CheckBox check = ((System.Web.UI.WebControls.CheckBox)formControl);
                        check.Checked = false;
                    }
                }
     
            }
        }
    }
    Cas "checkBox dans un control" :
    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
     
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckBoxWithControl.aspx.cs" Inherits="CheckBoxWithControl" %>
     
    <%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
     
            <uc1:WebUserControl ID="WebUserControl1" runat="server" />
     
        </div>
        <asp:Button ID="cmdDecoche" runat="server" Text="Décocher" 
            onclick="cmdDecoche_Click" />
        </form>
    </body>
    </html>
    Code Behind :
    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
    30
    31
    32
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    public partial class CheckBoxWithControl : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
        protected void cmdDecoche_Click(object sender, EventArgs e)
        {
            foreach (Control masterControl in Page.Controls)
            {
                foreach (Control formControl in masterControl.Controls)
                {
                    foreach (Control control in formControl.Controls)
                    {
                        if (control is System.Web.UI.WebControls.CheckBox)
                        {
                            System.Web.UI.WebControls.CheckBox check = ((System.Web.UI.WebControls.CheckBox)control);
                            check.Checked = false;
                        }
                    }
                }
     
            }
        }
    }
    Control :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
    <asp:CheckBox ID="CheckBox1" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox2" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox3" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox4" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox5" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox6" runat="server" />
            <br />
            <asp:CheckBox ID="CheckBox7" runat="server" />
    Bonne courage

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Bof, le jour où il décidé de rajouter un container autour de ces checkbox, le code behind ne fonctionnera plus.
    Faut faire du récursif comme indiqué plus haut

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Allez, je suis dans un bon jour

    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
     
    public void CheckAll(Control parent)
            {
                var query = (from p in parent.Controls.Cast<Control>()
                             let q = p as CheckBox
                             where q != null
                             select p);
     
                foreach (var item in query)
                {
                    ((CheckBox)item).IsChecked = true;
                }
     
                foreach (Control ctl in parent.Controls)
                {
                    if (ctl.Controls.Count > 0)
                    {
                        CheckAll(ctl);
                    }
                }
            }

  6. #6
    Membre éclairé Avatar de hamouda64
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 63
    Par défaut
    Merci pour cette solution formidable, mais malheureusement j'ai voulais l'essayer mais ca marche pas pour moi. Je me retrouve avec des erreurs et tt

    Est-ce que vous pouvais nous expliquer comment faire, pour réaliser un jeu de teste svp M. lutecefalco?!!!!!!!!!!!!!!!!!!!

    Merci d'avance

Discussions similaires

  1. Cocher et décocher toutes les checkbox
    Par waylander35 dans le forum Débuter
    Réponses: 3
    Dernier message: 27/03/2015, 15h01
  2. Décocher toutes les checkbox d'une checkedlistbox
    Par Machine Head dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/11/2009, 17h57
  3. [JSF]Cocher toutes les checkbox d'une colonne
    Par Shivan dans le forum JSF
    Réponses: 6
    Dernier message: 14/07/2009, 19h09
  4. Cocher toutes les checkbox d'un formulaire
    Par stars333 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/06/2007, 18h43
  5. [Formulaire][Javascript] Décocher toutes les checkbox
    Par Salam59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2006, 14h28

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