启用复选框时如何获取KendoDropDownTree选中的完整数据项?
解决KendoDropDownTree获取选中节点完整数据对象的问题
要获取选中节点的完整数据对象,你可以利用KendoDropDownTree的getCheckedNodes()方法获取所有选中的节点元素,再通过每个节点的dataItem()方法提取完整数据项。具体实现如下:
$("#dropdowntree").kendoDropDownTree({ dataSource: [{ text: "item1", value: 1 }, { text: "item2", value: 2 },{ text: "item3", value: 3 }], checkboxes: true, change: function(e) { // 获取所有选中的节点 var checkedNodes = this.getCheckedNodes(); // 遍历节点,提取完整数据对象 var checkedDataItems = checkedNodes.map(function(node) { return node.dataItem(); }); // 现在checkedDataItems就是包含所有选中项完整数据的数组 console.log(checkedDataItems); // 示例:访问第一个选中项的text字段 if(checkedDataItems.length > 0) { console.log(checkedDataItems[0].text); } } });
关键说明:
getCheckedNodes():返回所有被勾选的节点DOM元素集合node.dataItem():从节点元素中获取对应的完整数据源对象,包含text、value等所有自定义字段
如果是单选场景(即使启用复选框也可参考),还可以用this.dataItem()方法直接获取当前选中项的完整数据,但复选框多选时必须用getCheckedNodes()遍历处理。
内容的提问来源于stack exchange,提问作者Jayanth Saravanan
相关产品推荐
相关产品推荐

