Toon posts:

[javascript] Functie aanroepen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een "select all checkboxes" ding te maken zoals bij bijvoorbeeld Hotmail wordt gebruikt. Hiervoor had ik een redelijk net voorbeeld gevonden op code project (http://www.codeproject.com/aspnet/Multi-select_Dataagrid.asp) enkel krijg ik het maar niet aan de praat. Elke keer als ik namelijk de select all checkbox aan click krijg ik als error dat er een object vereist is. (Bij beide functies). Op de regel waar xState = theBox.checked. Nu heb ik gekeken is is inderdaad de variabele "theBox" null.

zie hieronder de functie.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script language="javascript">
function SelectAllCheckboxes(spanChk){

    var oItem = spanChk.children;
    var theBox=oItem.item(0)
    xState=theBox.checked;    
   
    elm=theBox.form.elements;
    for(i=0;i<elm.length;i++)
        if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
        {
            //elm[i].click();
            if(elm[i].checked!=xState)
            elm[i].click();
            //elm[i].checked=xState;
    }
}
</script>


Ik roep het vanuit de code als volgt aan (met this dus):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
              <asp:DataGrid id="DataGrid1" style="LEFT: 118px; TOP: 62px" runat="server"
                width="579px" height="64px" bordercolor="Black">
                <EditItemStyle font-names="Arial"></EditItemStyle>
                <ItemStyle font-size="Smaller" font-names="Arial" borderwidth="1px"
                  bordercolor="Black" backcolor="White"></ItemStyle>
                <HeaderStyle font-size="Smaller" font-names="Arial"></HeaderStyle>
                <Columns>
                  <asp:TemplateColumn>
                    <HeaderTemplate><asp:CheckBox id="chkAll"
                        onclick="JavaScript:SelectAllCheckboxes(this);"
                        runat="server"
                        autopostback="false"
                        tooltip="Select/Deselect All"/>
                    </HeaderTemplate>
                    <ItemTemplate><asp:CheckBox id="chkSelect" runat="server"
                        onclick="JavaScript:HighlightRow(this);"
                        autopostback="false"/>
                    </ItemTemplate>
                  </asp:TemplateColumn>
                </Columns>
              </asp:DataGrid>

Er boven en er onder staan nog wat andere formulier dingen zoals textboxen en buttons.

Kan iemand mij vertellen waarom die this nou niet de goede waardes meegeeft?

  • alley
  • Registratie: Mei 2002
  • Laatst online: 19-04-2023

alley

ahuh

achter
var theBox=oItem.item(0)
een punt-komma?

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)


  • ibizadesire
  • Registratie: Juli 2003
  • Laatst online: 12-05 07:36
lijkt mij ook die ;
nu slaat hij de regel wellicht over

Verwijderd

Topicstarter
Had gekunt maar dat is niet zo. Want dat had ik namelijk al geprobeerd.
Daarnaast is het in het werkende project van de tutorial ook zo. (Sterker nog daar heb ik dat stukje nu weer recht uit gekopierd om er zeker van te zijn dat ik er geen fouten in had "gewijzigd".

  • alley
  • Registratie: Mei 2002
  • Laatst online: 19-04-2023

alley

ahuh

ik vind het zowiezo nogal slordige code nu ik er goed naar kijk.
Maar probeer eens de manier zoals het volgens het DOM hoort:
vervang
code:
1
var theBox=oItem.item(0)

door
code:
1
var theBox = spanChk.childNodes[0];


(overigens wordt var oItem = spanChk.children; dan overbodig, maar goed :P)

[ Voor 19% gewijzigd door alley op 21-02-2005 14:39 ]

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-05 22:46

Janoz

Moderator Devschuur®

!litemod

Dit probleem heeft weinig met ASP te maken. Javascript problemen horen aan de andere kant van de schutting.. Moveje naar Webdesign & Graphics. Daarnaast vind ik de titel nogal niet lading dekkend. Je zou kunnen overwegen om (via een topic report) een beter voorstel te doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1