Ga naar inhoud

[javascript] select all checkbox functie


Aanbevolen berichten

Hallo friends, Ik heb een datagrid met checkboxies om deze te deleten. Ik had een functie gejat van internet die alle checkboxen selecteert of deselecteerd. Alleen deze werkt met form, oftwel ALLE checkboxies gaan aan of uit. En ik heb nog andere checkboxen, die dus 'meegaan'. Is het mogelijk om deze te beperken tot de checkboxen in de datagrid? dit is wat ik heb: [code:1:1e4784fe39] function select_deselectAll (chkVal, idVal) { var frm = document.forms[0]; // Loop through all elements for (i=0; i<frm.length; i++) { // Look for our Header Template's Checkbox if (idVal.indexOf ('CheckAll') != -1) { // Check if main checkbox is checked, then select or deselect datagrid checkboxes if(chkVal == true) { frm.elements[i].checked = true; } else { frm.elements[i].checked = false; } // Work here with the Item Template's multiple checkboxes } else if (idVal.indexOf ('DeleteThis') != -1) { // Check if any of the checkboxes are not checked, and then uncheck top select all checkbox if(frm.elements[i].checked == false) { frm.elements[1].checked = false; //Uncheck main select all checkbox } } } } [/code:1:1e4784fe39] /edit trouwens, als het ook met een andere programmeer taal kan, vind ik het ook prima
Link naar reactie
Je kan alle inputs binnen de datagrid opvragen met getElementsByTagName. Als je controleert op het type, dan kan je daar je acties aan verbinden. [code:1:902ca01007] function doejeding() { var datagrid = document.getElementById('idvandatagrid'); var inputs = datagrid.getElementsByTagName('input'); var i = inputs.length; while (i--) { if (inputs[i].type == 'checkbox') { // doe je ding } } } [/code:1:902ca01007] De id van de datagrid kan je in de code-behind opvragen. Als je dat niet lukt dan kan je evt ook nog een container-div om je datagrid zetten met een vast id, en deze id gebruiken in je functie.
Link naar reactie
hmm pff, shit zo kom ik er nog niet eens uit :( Misschien als je heel even tijd hebt, dat je ernaar kan kijken annie, zou geweldig zijn: datagrid: [code:1:e7b977197f] <asp:DataGrid class="txt" id="myDataGrid" runat="server" PagerStyle-HorizontalAlign="Right" PagerStyle-Mode="NumericPages" PageSize="<%# intPageSize %>" OnPageIndexChanged="PageIndexChanged_OnClick" AllowPaging="True" Cellpadding="1" Border="0" AutoGenerateColumns="False" Width="600px" backcolor="#DDE7F2" HeaderStyle-CssClass="pb" DataKeyField="OproepID" CellSpacing="1" BorderColor="White" BorderWidth="1px"> <HeaderStyle cssclass="pb" backcolor="#AEC8E2"></HeaderStyle> <PagerStyle horizontalalign="Right" backcolor="White" mode="NumericPages"></PagerStyle> <AlternatingItemStyle backcolor="White"></AlternatingItemStyle> <Columns> <asp:BoundColumn DataField="OproepID" HeaderText="OproepID"></asp:BoundColumn> <asp:BoundColumn DataField="Datum" HeaderText="Datum" DataFormatString="{0:D}"></asp:BoundColumn> <asp:BoundColumn DataField="Omschrijving" HeaderText="Omschrijving"></asp:BoundColumn> <asp:BoundColumn DataField="Voornaam" HeaderText="Voornaam"></asp:BoundColumn> <asp:BoundColumn DataField="Bijzonderheden" HeaderText="Bijzonderheden"></asp:BoundColumn> <asp:HyperLinkColumn Text="<img border='0' src='images/edit.gif' alt='edit record'>" DataNavigateUrlField="OproepID" DataNavigateUrlFormatString="OproepEdit.aspx?OproepID={0}" HeaderText="Edit"></asp:HyperLinkColumn> <asp:HyperLInkColumn DataTextFormatString="<img src='images/{0}' border='0'/>" DataTextField="SS" DataNavigateUrlField="OproepID" DataNavigateUrlFormatString="OproepSS.aspx?OproepID={0}" HeaderText="SS" target="blank"></asp:HyperLinkColumn> <asp:HyperLinkColumn Text="<img border='0' src='images/i.gif' alt='meer info'>" DataNavigateUrlField="OproepID" DataNavigateUrlFormatString="OproepInfo.aspx?OproepID={0}" HeaderText="Info"></asp:HyperLinkColumn> <asp:TemplateColumn> <HeaderTemplate> <asp:CheckBox ID="CheckAll" OnClick="javascript: return doe je ding();" runat="server" /> <font face="Webdings" color="white" size="3">a</font> </HeaderTemplate> <ItemTemplate> <asp:CheckBox id="cbSelected" runat="server"></asp:CheckBox> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> [/code:1:e7b977197f] die 'checkAll' is dus de checkbox om alle checkboxen te selecteren in de grid, deze staat in de header. 'cbSelected' zijn de checkboxen in de grid
Link naar reactie
Tja, nu zeg je nog steeds dat "niets werkt", maar dat zegt niet veel. Dus: wat zie je dan? Een foutmelding (welke, waar, op welk moment)? Of zie je gedrag dat je niet kan verklaren (wat doe je, wat verwacht je en wat gebeurt er)? Nu moet ik alsnog je (incomplete) code gaan nalopen en op sommige punten gokken wat er fout zou kunnen gaan. Het is voor forumleden natuurlijk praktisch als we wat aanknopingspunten hebben. Maar oké, ik zal een poging wagen. Alleerst: "return doe je ding()" zal waarschijnlijk "return doejeding()" moeten zijn. Daarnaast gaat onderstaande niet werken aangezien je een server-side control hebt. Het onclick event wordt server-side afgehandeld. En niet, zoals je waarschijnlijk gewend bent, aan de client-side. [code:1:06d8a6aaf0] <asp:CheckBox ID="CheckAll" OnClick="javascript: return doe je ding();" runat="server" />[/code:1:06d8a6aaf0] Wijzig dit dus naar een 'normale' checkbox als je niets met de gegevens van dit ding wil doen, naast het aan-/uitzetten van de overige checks. Als je nog wel wat wil doen met deze control dan zal je op een andere wijze de javascript functie moeten toevoegen aan de control. Even uit m'n hoofd was dat iets als onderstaande. Maar ik weet daarbij niet zeker of je onclick ook daadwerkelijk op de input komt (of op de span). [code:1:06d8a6aaf0] protected CheckBox CheckAll; // en dan in de Page_Load CheckAll.Attributes.Add("onclick", "return doejeding()"); [/code:1:06d8a6aaf0] Als laatste: let erop dat de ID die je een asp.net control geeft in de aspx/ascx code, niet gelijk is aan de ID die het element uiteindelijk krijgt in de html output (voor het geval je deze wilde gebruiken in de javascript code). Als ik me niet vergis vraag je de gegeneerde ID op met de ClientID property van de control. HTH. [i:06d8a6aaf0][size=9:06d8a6aaf0]disclaimer: ik ben geen .net programmeur. Dus als ik het mis heb, vergeef het me dan :D[/size:06d8a6aaf0][/i:06d8a6aaf0]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...