设置kendo ui TreeView控件显示半选状态的记录
原因:
treeview的数据源比较大,如果子级同时包含选中的项和未选中的项,那么父级应该是“半选”的状态,如下图:
但是默认情况下,直接把数据给treeView以后,他不会显示半选,如下图:
虽然子级有一个未选中的项,但是在文件夹不展开的情况下,他显示的是未选中,必须全部展开的情况下才会正常,或者使用下面的方法调用才会正常:
var treeview = $("#treeview").data("kendoTreeView"); treeview.updateIndeterminate();
但是如果数据量大,不管是展开或是调用上面的那个方法,速度都会很慢,我们这里测试的,得有几十秒的时间等待。
解决方案:
在databind方法里手工处理一下半选中的状态,示例如下:
dataBound: function(e) {
updateTree();
}
function updateTree() { $('input:checkbox').each(function(){ var item=$(this)[0]; item.indeterminate = true; }); };
上面的方法是把所有的checkbox转换为“半选”的状态。
实际工作中,只要把需要“半选”的节点告诉treeView就可以了
function updateTree() { var treeView = $('#treeViewCaseFolder').data('kendoTreeView'); for (var i = 0; i < indeterminateList.length; i++) { var data = treeView.dataSource.get(indeterminateList[i]); if (data) { var selectitem = treeView.findByUid(data.uid); selectitem.find("input:checkbox")[0].indeterminate = true; } } };
上面代码中的indeterminateList这个变量就是需要改为“半选”状态的所有数据的id。
分类:
kendo ui
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2018-10-17 mysql 手工恢复数据后要注意的事情