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 :

Problème checkbox dans listview


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Problème checkbox dans listview
    Bonjour,

    J'ai un petit soucis. J'ai une balise listview avec mon itemtemplate defini. je souhaite enregistrer dans une variable session tous les id des cases cocher au moment ou l'utilisateur appuie sur le bouton ajouter. Voici mon code:

    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
     
    <form id="form1" runat="server">
        <div>
            <div data-role="page">
                <ul data-filter="true" data-role="listview" data-theme="c" data-split-icon="delete">
                    <asp:ListView ID="ListChoiceByCategorie" runat="server" DataKeyNames="id">
                        <ItemTemplate>
                            <li><a href="DetailChoiceById.aspx?id=<%# Eval("id") %>">
                                <img src='<%# "..\\Images\\"+ Eval("File_path") %>' alt="img_choix" />
                                <h1 style="margin-left: 15px">
                                    <%# Eval("Nom") %></h1>
                                <p style="margin-left: 15px">
                                    <%# Eval("Prix") + "€"%></p>
                            </a>
                                <asp:CheckBox ID="CheckBox2" runat="server" Checked="False" Visible='<%# Request["menu"] != null && bool.Parse(Request["menu"]) %>' AutoPostBack="True"/>
                            </li>
     
                        </ItemTemplate>
                    </asp:ListView>
                </ul>
                <a href="#" id="lien_ajouter_choix_menu" >ajouter</a>
            </div>
    j'arrive à récupérer les id en javascript, avec :

    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
     
    $(document).ready(function () {
     
     
                $("#lien_ajouter_choix_menu").click(function () {
                    // Troisième méthode
                    $("input[type=checkbox]:checked").each(
                        function () {
                            alert($(this).attr("id"));
                        }
                    );
     
     
                });
     
            });

    Mais je n'arrive pas à les stocker dans une variable session que je pourrais récupérer sur une autre page.

    Merci.

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Le javascript s’exécute côté client. Donc aucun accès aux variables de session qui sont sur le serveur.

    Pourquoi ne les récupères-tu pas normalement avec un peu de code-behind?

    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Pour mon cas je ne voit pas comment lui dire dans mon code behind pour toute les checkbox cocher. j'ai pas une fonction du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach(var in Checkbox.checked)
    j'ai essayer plusieurs chose mais je n'ai pas réussi.

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Oui, mais cela ne correspond pas à mon cas du moins je n'ai pas réussi à comprendre afin de l'adapter. Si vous avez d'autre exemple que je puisse en déduire la logique algorithmique. Merci de votre aide.

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Les contrôles sont comme des poupées russes. Il s’emboîtent les uns dans les autres.
    Un contrôle ne voit que son n-1 et ne connaît pas son n+1. Un contrôle est un objet et ne voit que les objets qu'il créé.

    Ton formulaire est dans une page aspx. Cette page est un objet. Comme énoncé plus haut, il ne voit que la ListView et pas les CheckBox qui sont créées dedans.

    Pour trouver toutes les CheckBox sur lesquelles tu as cliqué au moment où tu pousse un bouton, il faut une fonction qui va aller chercher chaque CheckBox à l'intérieur de ta liste jusqu'au dernier contrôle. Il faut une fonction récursive
    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
    public static IEnumerable<T> FindControls<T>(Control rootControl) where T : class
    {
        if (rootControl == null) throw new ArgumentNullException("rootControl");
     
        T lFoundControl;
     
        foreach (Control lControl in rootControl.Controls)
        {
            if ((lFoundControl = lControl as T) != null)
                yield return lFoundControl;
     
            foreach (T lFoundChildControl in FindControls<T>(lControl))
                yield return lFoundChildControl;
        }
    }
    Grâce à la fonction ci-dessus, je peux récupérer tous les contrôles d'un certain type à l'intérieur d'un contrôle. Exemple, le code ci-dessous créé une liste de CheckBox grâce à une ListView:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <asp:ListView ID="ListView1" runat="server" DataSource="<%# MyListOfMyObject %>">
        <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" Text='<%# (Container.DataItem as MyObject).text %>' /><br />
        </ItemTemplate>
    </asp:ListView>
    <asp:Label ID="Label1" runat="server"></asp:Label>
    Je peux obtenir toutes les CheckBox en faisant appel à la fonction ci-dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IEnumerable<Control> ctrls = FindControls<CheckBox>(ListView1);
    foreach (var item in ctrls)
    {
        Label1.Text += item.UniqueID + "<br />";
    }
    A+
    Images attachées Images attachées  

Discussions similaires

  1. Problème CheckBox dans JTable
    Par l4r3nZu dans le forum Composants
    Réponses: 2
    Dernier message: 28/05/2011, 15h02
  2. problème checkbox dans gridview
    Par math33 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/05/2010, 16h14
  3. Problème checkbox dans getJspContext().getOut().write(etc)
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/02/2010, 15h31
  4. Problème index dans Listview
    Par tenebriox dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/07/2009, 15h47
  5. problème CheckBox dans une Datatable
    Par rc.dev2009 dans le forum JSF
    Réponses: 3
    Dernier message: 23/04/2009, 18h47

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