GridView checkbox [Résolu]

Signaler
Messages postés
19
Date d'inscription
jeudi 19 avril 2012
Statut
Membre
Dernière intervention
27 mai 2012
-
cs_Megafan
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
-
bonjour,
j'ai une gridVeiw qui contient un chkcbox Header ajouté par l'intermédiaire d'ItemTemplate.
j'ai créée une fonction côté client qui permet de selectionner tous les checkbox
lors du click sur le checkbox header elle fonctionne parfaitement tandis qu'on décochant rien ne se passe
avez-vous des suggestions??

9 réponses

Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
Ta première fonction est bonne, il faut simplement vérifier que tu ne modifie pas le header (via son nom par exemple). pour le décocher, il suffit de déclarer un var en dehors de ta fonction puis faire un != dedans afin d'inverser le booleen.

dans l'exemple si dessus, ton checckbox header à un id='NomCheckHeader'


var action= true;

        function SelectAllCheckBoxes() {        
            var champs = document.getElementsByTagName("input");        
            for (var i = 0; i < champs.length; i++) {
                if (champs[i].type.toLowerCase() == "checkbox") {
                    var chk=champs[i].id;
                    if (chk!= "NomCheckHeader") {
                        var Obj = document.getElementById(chk);
                        Obj.checked = action;         
                    }
                
                }
            }
            action= !action;
        }




Megafan

Développeur de http://www.o10c.eu (Lien)


La nouvelle référence en matière de jeu de stratégie spatiale.
Messages postés
249
Date d'inscription
samedi 13 octobre 2007
Statut
Membre
Dernière intervention
2 mai 2014

poste ton code.

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
Messages postés
19
Date d'inscription
jeudi 19 avril 2012
Statut
Membre
Dernière intervention
27 mai 2012

 function SelectAllCheckBoxes(action)
{
var myform=document.forms["form1"];
var len = myform.elements.length;
   for( var i=0 ; i < len ; i++)
   {
   if (myform.elements[i].type == 'checkbox')
      myform.elements[i].checked = action;
   }
}
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
A priori ton action ne doit pas être 'false'

Par contre curoisite de ton code, ton checkbox header coté client est aussi une checkbox, et donc doit lui même être impacté par ta fonction SelectAllCheckBoxes, car ta boucle parcourt tous les éléments checkbox de ta form...



Megafan

Développeur de http://www.o10c.eu (Lien)


La nouvelle référence en matière de jeu de stratégie spatiale.
Messages postés
19
Date d'inscription
jeudi 19 avril 2012
Statut
Membre
Dernière intervention
27 mai 2012

effectivement megafan

mais le problème qui me concerne c lors du décochement parcq en appelant la fonction je mets l'action à true c pour ça qui rien ne se passe quand je déselectionne le checkbox en tête

une solution svp?
Messages postés
19
Date d'inscription
jeudi 19 avril 2012
Statut
Membre
Dernière intervention
27 mai 2012

en cherchant dans le net j'ai trouvé une autre fonction et ça fonctionne parfaitment,mais vu que je connais peu sur javascript je ne l'ai bien compris;
function SelectAllCheckboxes(spanChk){
   var oItem = spanChk.children;
   var b= (spanChk.type=="checkbox") ? 
        spanChk : spanChk.children.item[0];
   xState=b.checked;
   elm=b.form.elements;

   for(i=0;i<elm.length;i++)
     if(elm[i].type=="checkbox" && elm[i].id!=b.id)
     {
       if(elm[i].checked!=xState)
         elm[i].click();
      }
 }


que qqn m'explique svp?
Messages postés
19
Date d'inscription
jeudi 19 avril 2012
Statut
Membre
Dernière intervention
27 mai 2012

ça marché merci
Messages postés
19
Date d'inscription
jeudi 19 avril 2012
Statut
Membre
Dernière intervention
27 mai 2012

autre chose comment les laissés cocher dans le postback de la page,car j'ai un dropdowlist qui affiche le nombre d'enregistrement lorsque je clique dessus les checkbox se retrouve en état de décochment, je voudrais qu'ils soient cochés même lors changement de records


merci d'avance
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
il faut créer et initialiser ta variable action au chargement de ta page via un clientscript.registerstartupscript dans le code coté serveur.

genre en vb.net :

ClientScript.RegisterStartupScript(Me.GetType(), "init", "<script language = 'javascript'>action='true';</script>")




Megafan

Développeur de http://www.o10c.eu (Lien)


La nouvelle référence en matière de jeu de stratégie spatiale.