Dies ist ein Follow-up von diesem post. Ich verstehe, wie die übergeordneten Knoten alle untergeordneten Knoten auswählen können. Ich habe ein TreeGrid mit mindestens 3 Ebenen von Knoten und jeder der Level 2 Knoten hat mehrere Blattknoten. Ich kann auf den Knoten der Ebene 2 klicken, um alle darunter liegenden Blattknoten auszuwählen, aber wenn ich alle Blattknoten deaktiviere, möchte ich die Abstammung des Knotens aktualisieren. Also suche ich nach einer Möglichkeit, die Ereignisse nicht nur an die Kinder, sondern auch an die Eltern des aktivierten/unmarkierten Knotens zu blasen. Es wäre auch schön, das Kontrollkästchen des Knoten der Ebene 2 grau dargestellt zu zeigen, was bedeutet, dass nicht alle Blätter unter dem Knoten ausgewählt sind.Treegrid, wie übergeordnete Knoten von Kindern Knoten überprüfen/deaktivieren
0
A
Antwort
0
Nach einigem Graben habe ich einen Weg gefunden, das funktioniert sowohl mit dem Code aus dem ursprünglichen Post als auch mit meinem eigenen Code. Dadurch werden sowohl die untergeordneten Knoten als auch die übergeordneten Elemente des Knotens synchron gehalten, wenn Sie auf ein Kontrollkästchen im jqgrid-Baumraster klicken.
beforeSelectRow: function (rowid, e) {
var $this = $(this),
isLeafName = $this.jqGrid("getGridParam", "treeReader").leaf_field,
localIdName = $this.jqGrid("getGridParam", "localReader").id,
localData,
state,
parentState,
parentChildren,
setChechedStateOfChildrenItems = function (children) {
$.each(children, function() {
$("#" + this[localIdName] + " input.itmchk").prop("checked", state);
updateSelectedNode(row_id, this[localIdName], state);
if (!this[isLeafName]) {
setChechedStateOfChildrenItems($this.jqGrid("getNodeChildren", this));
}
});
},
setCheckedStateofParentItems = function (parent) {
parentChildren = $this.jqGrid("getNodeChildren", parent);
var selectedChildren = 0;
$.each(parentChildren, function() {
if ($("#" + this.id + " input.itmchk").prop("checked")) {
selectedChildren += 1;
}
});
if (selectedChildren == 0) {
parentState = false;
} else {
parentState = true;
}
updateSelectedNode(row_id, parent.id, parentState);
$("#" + parent.id + " input.itmchk").prop("checked", parentState);
if (parent.parent != null) {
setCheckedStateofParentItems($this.jqGrid("getLocalRow", parent.parent), state)
}
}
if (e.target.nodeName === "INPUT" && $(e.target).hasClass("itmchk")) {
state = $(e.target).prop("checked");
localData = $this.jqGrid("getLocalRow", rowid);
setChechedStateOfChildrenItems($this.jqGrid("getNodeChildren", localData), state);
setCheckedStateofParentItems($this.jqGrid("getLocalRow", localData.parent), state)
updateSelectedNode(row_id, localData.id, state); //this does the checkbox we checked
}
},
Der Zellenformatierer Teil:
{
name: 'name', width: 25, index: 'name', label: "ColumnName", labelAlign: "left",
formatter: function (cellvalue, options, rowObject) {
var result = "<input type='checkbox' class='itmchk' checked> " + $.jgrid.htmlEncode(cellvalue);
if (rowObject.selected == false) {
result = result.replace("checked", "");
}
return result;
}
}
Verwandte Themen
- 1. bekommen Firebase Knoten von Kindern
- 2. java jqGrid TreeGrid - erweitern Knoten nach reloadgrid
- 3. SmartGWT Kopiere Teilbaum: Blatt Knoten zum Wurzelknoten in andere TreeGrid
- 4. XML-Datei mit benutzerdefinierten Kindern Knoten
- 5. Einen Knoten in einem Baum von Knoten mit einer beliebigen Anzahl von Kindern finden
- 6. Knoten mit so vielen Kindern wie möglich Python
- 7. Rabl, entfernen Sie übergeordnete Element von Kindern
- 8. Wie werden alle untergeordneten Knoten gelöscht, wenn der übergeordnete Knoten mit der gremlin-Abfrage gelöscht wurde?
- 9. BST - Knoten mit linken und rechten Kindern zählen
- 10. Extract Knoten zwischen zwei Knoten aus XML
- 11. Fancytree JQuery - Knoten Kinder und Unter Kindern Get
- 12. XML-Verarbeitung in R: Verwenden Sie xmlGetAttr bei Kindern Knoten
- 13. XPath, um zu überprüfen, dass jeder übergeordnete Knoten den untergeordneten Knoten benötigt
- 14. Python minidom: #text Knoten verschwindet, wenn es um neue übergeordnete Knoten anhängt
- 15. Wie Knoten vollständig zwischen zwei bestimmten Knoten
- 16. XQuery: Löschen Knoten bestimmte übergeordnete basierend auf Abkömmling-Wert
- 17. Wie Optionen passieren Knoten, wenn babel-Knoten
- 18. XSL: Entfernen Sie übergeordnete Knoten mit doppelten untergeordneten Elementen
- 19. Wie die Erkennung von Knoten durch Knoten fehlschlägt
- 20. XML-Knoten innerhalb von SQL: Wie erzwinge Ende Digther Knoten
- 21. SQL Server .nodes() XML übergeordnete Knoten nach Name
- 22. XML Übergeordnete Knoten Änderung mit Childnode Attribut in Powershell
- 23. Einen Knoten entfernen, ohne das übergeordnete Element zu kennen (JavaFX)
- 24. Stream XML-Knoten für Knoten
- 25. Knoten
- 26. Neo4j Knoten Liste der Knoten
- 27. Baumstruktur mit subclassed Knoten, wie den Betrieb auf einer Untergruppe von Kindern anzuwenden
- 28. jstree alle untergeordneten Knoten von root
- 29. afterburner.fx Ansicht von Knoten
- 30. Knoten Indexierung von Koordinaten