GridView checkbox

Résolu
invent001 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 27 mai 2012 - 26 mai 2012 à 13:34
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 - 28 mai 2012 à 19:52
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

cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
27 mai 2012 à 17:38
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.
3
yassinebennani Messages postés 249 Date d'inscription samedi 13 octobre 2007 Statut Membre Dernière intervention 2 mai 2014
27 mai 2012 à 01:22
poste ton code.

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
0
invent001 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 27 mai 2012
27 mai 2012 à 10:19
 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;
   }
}
0
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
27 mai 2012 à 10:49
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
invent001 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 27 mai 2012
27 mai 2012 à 11:01
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?
0
invent001 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 27 mai 2012
27 mai 2012 à 12:43
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?
0
invent001 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 27 mai 2012
27 mai 2012 à 17:49
ça marché merci
0
invent001 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 27 mai 2012
27 mai 2012 à 17:58
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
0
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
28 mai 2012 à 19:52
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.
0
Rejoignez-nous