Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Selektiranje svih check boksova sa dve data grid kontrole

  • 3 odgovora
  • 4.101 pregleda

Najnovija ↓

Selektiranje svih check boksova sa dve data grid kontrole 15.05.2006. u 18:22 · pre 249 meseci #1
Na asp.net stranici imam dve data grid controle.
Svaka data grid kontrola ima u svom zacelju Select All/Diselect All check box.
Sledeci java script funkcionise kad je na formi samo jedna data grid kontrola, ali sa dve data grid kontrole ta skripta selektuje redove na obe data grid kontole sto je nepozeljno:
Code:

 function SelectAllCheckboxes(spanChk)
        {
            var xState=spanChk.checked;
            var theBox=spanChk;
    
            elm=theBox.form.elements;
            for(i=0;i<elm.length;i++)
            {
                if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
                {
                    if(elm[i].checked!=xState)
                        elm[i].click();
                }
            }
        }


Ima li iko predlog za neko jednostavno resenje gde bi bio u stanju da cekiram samo redove u data grid kontroli koja je inicirala select all/ Diselect all proces?

Hvala
Potpis
Jednostavnost! Odlika genijalnosti
Re: Selektiranje svih check boksova sa dve data grid kontrole 16.05.2006. u 09:44 · pre 249 meseci #2
Pitanje je kakav ti HTML generiše ta kontrola. (ja se ne čačkam s asp.net, ali bilo bi dobro da ostaviš deo koda formulara s generisane stranice ... odnosno okači celu generisanu stranicu uz poruku)

Suština je da se obe kontrole nalaze u istom formularu, a funkcija postavlja stanje na svim čekboksevima u formularu.

... no hajde kači HTML, pa da se prilagodi funkcija ...
Potpis
BoxUp
interesantna logička igra
Monty Hall paradoks - interaktivni demo
Re: Selektiranje svih check boksova sa dve data grid kontrole 16.05.2006. u 18:05 · pre 249 meseci #3
Pošto su checkbox-ovi u različitim tabelama i pritom id checkbox-a počinje sa id tabele, možeš umesto:
Code:

elm=theBox.form.elements;

staviti:
Code:

elm = document.getElementById(theBox.id.replace(/([a-z_]+)_(.+)/i,'$1')).getElementsByTagName('input');

A možeš taj id tabele prosleđivati i kao argument funkcije SelectAllCheckboxes, npr
Code:

SelectAllCheckboxes2(spanChk, elemID)

a poziv npr.
Code:

onclick="SelectAllCheckboxes2(this, 'dgStudentsWithoutClass');

A za elm staviš:
Code:

elm = document.getElementById(elemID).getElementsByTagName('input');


A možeš kreirati (kao što si pokušavao) novu funkciju koja će "hvatati" parent tabelu, npr.
Code:

function getParentLayer(elem) {
  while(elem.tagName.toLowerCase() != 'table') {
    elem = elem.parentNode;
  }
  return elem;
}

pa za elm staviti:
Code:

elm = getParentLayer(spanChk).getElementsByTagName('input');


i još brojne mogućnosti...
Potpis
Banned - Not available
Re: Selektiranje svih check boksova sa dve data grid kontrole 16.05.2006. u 18:37 · pre 249 meseci #4
Wow, Ovo bi nazvao sveobuhvatnim odgovorom.

Branko, puno hvala. Implementirao sam ovu zadnju soluciju (koju sam neuspesno pokusavao).
I RADI.

Zakljucak:
Nekako intuitivno sam pokusavao da (parent tablu) tretiram kao kontejner (slicno formi) s tim da isfiltriram checkbox controle. Ono sto mi je falilo je razumevanje sledeceg metoda ".getElementsByTagName"

Znaci na svaki html element koji moze biti kontejner, kao sto je npr tabla ja mogu da upotrebim taj metod i dobijem niz kontrola (u zavisnosti od tag imena) koje taj kontejner poseduje.

Jos jednom puno hvala, (Ulepsao si mi dan
Potpis
Jednostavnost! Odlika genijalnosti
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme