Telerik 获取剑道UI Web树视图中的复选框列表
如何在剑道UI Web树视图中获得复选框列表?Telerik 获取剑道UI Web树视图中的复选框列表,telerik,treeview,kendo-ui,Telerik,Treeview,Kendo Ui,如何在剑道UI Web树视图中获得复选框列表? 我在API的任何地方都找不到这个功能,但我认为这将是一个非常基本的操作。实际上没有API方法,但您可以通过jQuery轻松获得它们 要获取选中的复选框,请使用 $('#treeviewName :checked'); 要获取选中的容器li元素,请使用: $('#treeviewName :checked').closest('li'); 拥有li元素后,可以将其传递给TreeView的方法,并获得基础模型及其ID或其他属性。来源: var tr
我在API的任何地方都找不到这个功能,但我认为这将是一个非常基本的操作。实际上没有API方法,但您可以通过jQuery轻松获得它们 要获取选中的复选框,请使用
$('#treeviewName :checked');
要获取选中的容器li元素,请使用:
$('#treeviewName :checked').closest('li');
拥有li元素后,可以将其传递给TreeView的方法,并获得基础模型及其ID或其他属性。来源:
var treeview=$(“#treeview”).data(“kendoTreeView”);
var checkedNodes=[];
函数状态(节点){
对于(var i=0;i
这似乎不能解释通过级联检查的未展开节点:checkChildren属性。在剑道演示中,它们提供了以下算法:
// function that gathers IDs of checked nodes
function checkedNodeIds(nodes, checkedNodes) {
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].checked) {
checkedNodes.push(nodes[i].id);
}
if (nodes[i].hasChildren) {
checkedNodeIds(nodes[i].children.view(), checkedNodes);
}
}
}
// show checked node IDs on datasource change
function onCheck() {
var checkedNodes = [],
treeView = $("#treeview").data("kendoTreeView"),
message;
checkedNodeIds(treeView.dataSource.view(), checkedNodes);
if (checkedNodes.length > 0) {
message = "IDs of checked nodes: " + checkedNodes.join(",");
} else {
message = "No nodes checked.";
}
$("#result").html(message);
}
//收集已检查节点ID的函数
函数checkedNodeId(节点,checkedNodes){
对于(var i=0;i0){
message=“选中节点的ID:”+checkedNodes.join(“,”);
}否则{
message=“未检查任何节点。”;
}
$(“#结果”).html(消息);
}
此解决方案不考虑您选中子节点而尚未展开父节点的情况,因为尚未通过javascript添加li和复选框。我正在寻找更好的解决办法。
// function that gathers IDs of checked nodes
function checkedNodeIds(nodes, checkedNodes) {
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].checked) {
checkedNodes.push(nodes[i].id);
}
if (nodes[i].hasChildren) {
checkedNodeIds(nodes[i].children.view(), checkedNodes);
}
}
}
// show checked node IDs on datasource change
function onCheck() {
var checkedNodes = [],
treeView = $("#treeview").data("kendoTreeView"),
message;
checkedNodeIds(treeView.dataSource.view(), checkedNodes);
if (checkedNodes.length > 0) {
message = "IDs of checked nodes: " + checkedNodes.join(",");
} else {
message = "No nodes checked.";
}
$("#result").html(message);
}