我正在尝试在Angular的Kendo Grid工具栏中实现一个Kendo ui-Menu。我在菜单上手动创建列列表。单击复选框时,我可以显示/隐藏列。当菜单打开时,我需要遍历复选框,以便我可以根据网格中每列上设置的选项设置选中/取消选中。问题是我不知道如何访问子节点的check / unchecked。
下面的代码获取所有子节点,但我不知道如何访问其已检查/未检查的值:
var columns = $(e.item).find(".k-item:not(:has(.k-group))");
我有Dojo设置,其中检查/取消选中有效,但我不知道如何从'onOpen'访问它们。任何帮助都非常感激。
答案 0 :(得分:1)
首先,您必须找到checkbox元素,然后您可以使用.prop("checked")
方法获取复选框选中的值。
所以,如果你,例如。想要在打开的菜单上切换复选框值,您可以使用:
$scope.onOpen = function(e) {
var checkboxes = $(e.item).find(".k-item:not(:has(.k-group))").find("input[type='checkbox']");
for(var i = 0; i < checkboxes.length; i++){
var checkbox = $(checkboxes[i]);
checkbox.prop("checked", !checkbox.prop("checked"));
}
}
答案 1 :(得分:0)
感谢JarosławKończak让我走上了正确的道路,我最终能够使用我的列上的“隐藏属性”将复选框设置为选中或通过改变他的建议进行检查:< / p>
$scope.onOpen = function(e) {
var checkboxes = $(e.item).find(".k-item:not(:has(.k-group))").find("input[type='checkbox']");
for (var i = 0; i < checkboxes.length; i++) {
var checkbox = $(checkboxes[i]);
if (checkbox.prop("checked")) {
var fieldData = checkbox.data("field");
var columns = $scope.SearchGrid.columns;
for (var x = 0; x < columns.length; x++) {
if (columns[x].field == fieldData) {
if (columns[x].hidden == true) {
checkbox.prop("checked", false);
}
}
}
}
}
}
这是一个有效的Dojo,其中包含动态创建的列,而不是“手动”列列表。