当前位置: 首页 > news >正文

在Net MVC中应用JsTree

先实现个基本用法

1 - 引入js和css

2 -  html

            <div id="list_left" class="col-md-2 pre-scrollable">
                <div class="list_wrap">
                    <p class="lead">数据列表</p>
                    <div id="jstree">
                    </div>
                </div>
            </div>

3 - js

    //初始化jstree控件
    function init_jstree() {
        $("#jstree").jstree({
            "core": {
                'data': {
                    'url': '/Home/GetTreeData',
                    'dataType': 'json',
                    success: function () {
                        //alert('ok');
                    }
                },
                'themes': {
                    'name': 'proton',
                    'responsive': true,
                    "dots": true,
                    "icons": true
                }

            }
        });
    };
View Code

4 - cs

        public JsonResult GetTreeData()
        {
            IBaseBll<TableInfo> tableBll = new BaseBll<TableInfo>();
            var treeNodes = tableBll.QueryAll().Select(m => new
            {
                id = m.Id,
                parent = m.ParentId.ToString() == "0" ? "#" : m.ParentId.ToString(),
                text = m.NameCh,
                icon = m.TreeIcon
            });
            return Json(treeNodes, JsonRequestBehavior.AllowGet);
        }
View Code

5 - 说明

  • js中themes是选择的皮肤
  • 后台代码中的treeNodes 是封装符合jstree中的,还有其他属性 详见http://www.cnblogs.com/wuhuacong/p/4759564.html
  • 表设计 详见 http://www.cnblogs.com/jeffwongishandsome/archive/2010/10/26/1861633.html 评论里有更加方案

jstree的两个基本事件

1 - changed.jstree

    $('#jstree').on("changed.jstree", function (e, data) {
        //data.node是点击的节点信息,点击节点之后的逻辑都在这里处理
        init_TableInfo(data.node.id);
        var param = { TableId: data.node.id }
        table.settings()[0].ajax.data = param;
        table.ajax.reload();
        $(".introWrap").css("display", "none");
    });
View Code

2 - ready.jstree

    $("#jstree").on("ready.jstree", function (event, data) {
        data.instance.open_node(1); // 展开root节点
        //// 隐藏根节点 http://stackoverflow.com/questions/10429876/how-to-hide-root-node-from-jstree
        $("#1_anchor").css("visibility", "hidden");
        $("li#1").css("position", "relative");
        $("li#1").css("top", "-20px");
        $("li#1").css("left", "-20px");
        $(".jstree-last .jstree-icon").first().hide();
    });
View Code

3 - 说明

  • changed中可以获取到所点击节点的所有信息,可以做逻辑判断
  • ready是所有节点加载完成后触发的,在这里我隐藏了根目录
  • jstree官网 https://www.jstree.com/
  • 借鉴 https://www.cnblogs.com/ibgo/p/4025036.html

转载于:https://www.cnblogs.com/tanfuchao/p/10547665.html

相关文章:

  • nginx代理tcp协议连接mysql
  • markdown操作手册
  • [转载]URI 源码分析
  • HTML之常用标签及属性
  • jmeter 常见问题汇总
  • SPOJ COT3.Combat on a tree(博弈论 Trie合并)
  • HDU 2883 kebab
  • C++学习笔记30,指针的引用(2)
  • fatal error C1010: 在查找预编译头时遇到意外的文件结尾
  • c# Winform dev控件之ChartControl
  • Spring框架学习07——基于传统代理类的AOP实现
  • html迪士尼网页实现代码
  • HDU 2159 FATE
  • es 基于match_phrase/fuzzy的模糊匹配原理及使用
  • spring_事務
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Android单元测试 - 几个重要问题
  • Cumulo 的 ClojureScript 模块已经成型
  • JavaScript异步流程控制的前世今生
  • js写一个简单的选项卡
  • k个最大的数及变种小结
  • leetcode46 Permutation 排列组合
  • Mybatis初体验
  • nginx 配置多 域名 + 多 https
  • python3 使用 asyncio 代替线程
  • RxJS: 简单入门
  • Vue2.0 实现互斥
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • VuePress 静态网站生成
  • webpack+react项目初体验——记录我的webpack环境配置
  • Yii源码解读-服务定位器(Service Locator)
  • 基于 Babel 的 npm 包最小化设置
  • 记录:CentOS7.2配置LNMP环境记录
  • 跨域
  • 批量截取pdf文件
  • 前端存储 - localStorage
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 悄悄地说一个bug
  • 使用 @font-face
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 为什么要用IPython/Jupyter?
  • 我是如何设计 Upload 上传组件的
  • 以太坊客户端Geth命令参数详解
  • 最简单的无缝轮播
  • AI算硅基生命吗,为什么?
  • C# - 为值类型重定义相等性
  • 国内开源镜像站点
  • ​​​​​​​​​​​​​​Γ函数
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​力扣解法汇总946-验证栈序列
  • (31)对象的克隆
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (九)One-Wire总线-DS18B20
  • (转)iOS字体