Ich habe ein Raster, das Gruppierung hat, d. H. Das Raster zeigt Produkte der Gruppe. Die Struktur hat also Group und ihre Childs. Ich werde einige andere Gruppen und deren Kinder haben, an die ich mich wie unten gebunden habe. Ich möchte die gesamte Unterliste beim Klick auf Eltern aktivieren und deaktivieren.Aktivieren und Deaktivieren von Kontrollkästchen mit dynamischen IDs und Klasse mit jquery
CSHTML
@{
if (Model.List.Count() > 0)
{
<table>
<tr>
<input type="checkbox" class="[email protected](obj.GroupId)" name="@obj.GroupId" onclick="checkUncheckAll(this.class)" />
<td>Name</td>
</tr>
@foreach (var obj in Model.subList)
{
<tr>
<td>
<input type="checkbox" class="[email protected](obj.GroupId)" name="@obj.GroupId" /></td>
</td>
<td>
@obj.Name
</td>
</tr>
</table>
}
}
<input type="button" value="Save" onclick="PickAllCheckedRows();" />
Ich habe versucht, dies wie unten zu tun, aber keinen Erfolg. Außerdem möchte ich alle überprüfte Gruppe und ihre Unterpunkte beim Klicken auf Speichern auswählen. Jede Hilfe würde wirklich geschätzt werden.
<script type="text/javascript">
function checkUncheckAll(sender) {
alert(sender);
var chkElements = document.getElementsByClassName('chkItems');
for (var i = 0; i < chkElements.length; i++) {
chkElements[i].checked = sender.checked;
}
}
function PickAllCheckedRows() {
}
</script>
das funktioniert. Wenn ich auf das Eltern-Kontrollkästchen klicke, werden die Childs überprüft und beim Deaktivieren des Elterns werden auch die Childs deaktiviert, aber wenn ich jeden Unterpunkt nacheinander überprüfe, wird das Eltern-Checkbox nicht überprüft. – Sweetie
@Sweetie: Yup, Sie müssen dies separat implementieren, Klicks auf die einzelnen Artikel-Checkboxen bearbeiten und das Kontrollkästchen "Alle" aktivieren, je nachdem, ob sie alle ausgewählt sind. –