博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初始化bootstrap treeview树节点
阅读量:5037 次
发布时间:2019-06-12

本文共 2557 字,大约阅读时间需要 8 分钟。

最近在做启明星图库时,使用了Jquery Bootstrap  Treeview插件。但是,遇到了一个初始化的问题。先看效果如下:

当用户打开图库时,左边分类第一个类别是“所有分类”,默认需要选中。

 

TreeView的数据源来自后台JSON格式,如下:因为分类的数据库格式是ID格式,且是整数自增行。所有,在生成JSON时,会强制在JSON头部增加一个ID为-1的类别,表示“所有分类”

[{"href":"#-1","link":"false","text":"所有类别","c":"1"},{"href":"#1","link":"false","text":"公司活动","c":"1"},{"href":"#2","link":"false","text":"部门活动","c":"1", "nodes":[{"href":"#3","link":"false","text":"人事部图库","c":"1"}, {"href":"#4","link":"false","text":"财务部图库","c":"1"}]},{"href":"#5","link":"false","text":"其它活动","c":"1"}]

 

但是,直接把JSON数据源赋值给treeview,第一行并不会默认选中。

最后修改代码如下:

$(document).ready(function ()        {            var aj = $.ajax({                url: 'treejson.aspx?initcatid='+<%=Request.QueryString["catid"]%>,                cache: false,                dataType: 'json',                success: function (datasource) {                    $('#tree').treeview({                        levels: 2,                        data: datasource,                        enableLinks: false,                                                                       onNodeSelected: function (event, key) {                                                    alert("node click");                          }                                                                                             });                                     var id = -1;                                           var treeViewObject = $('#tree').data('treeview'),                        allCollapsedNodes = treeViewObject.getCollapsed(),                        allExpandedNodes = treeViewObject.getExpanded(),                        allNodes = allCollapsedNodes.concat(allExpandedNodes);                    for (var i = 0; i < allNodes.length; i++) {                                                    if (allNodes[i].href != ("#"+id))                        {                            continue;                        }                        var selectNode = allNodes[i];                         $('#tree').treeview('revealNode', [selectNode, { silent: true }]);                        treeViewObject.selectNode(selectNode);                        break;                    }                }                ,                error: function () {                     alert("异常!");                }            });

 

在代码里,增加了初始化选中的ID,例如通过URL传递 catid=2,表示我打开这个网址时,类别ID为2的 部门活动需要被选中 ,效果如下图

请注意代码里的:  $('#tree').treeview('revealNode', [selectNode, { silent: true }]); 这句话让树的节点自动展开。例如如果你设置树默认只展开level为1,而你需要展开的节点在2级,

那么'revealNode'将会把该节点自动展开。

 

转载于:https://www.cnblogs.com/mqingqing123/p/10208581.html

你可能感兴趣的文章
团队介绍
查看>>
javaweb回顾第一篇servlet的学习和理解
查看>>
记一次一个枚举引发线上事故风暴
查看>>
本地存储密码的安全设计
查看>>
倒水问题
查看>>
java之简单工厂模式详解
查看>>
STL之sort 排序
查看>>
W3CTECH交流会第26期交流总结
查看>>
C# 100以内质数
查看>>
线程学习一:创建线程
查看>>
UNIX系统文件
查看>>
3d转换-正方体-Html5Css3-遁地龙卷风
查看>>
Car Flash ECU Programmer From autonumen
查看>>
WinForm控件复杂数据绑定常用数据源(如:Dictionary)(对Combobox,DataGridView等控件DataSource赋值的多种方法)...
查看>>
Mongodb数据查询 | Mongodb
查看>>
java.util.List类学习
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>