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

用jquery-easyui中的combotree实现树形结构的选择

                     用jquery-easyui中的combotree实现树形结构的选择

需求:实现一个树形节点的选择,要求默认父节点都折叠,父节点前的checkbox不显示,子节点显示checkbox,且父节点不可选择。

1.前台先引入相应的js

 <link href="../css/themes/icon.css" rel="stylesheet" />
    <script src="../js/jquery-1.4.2.min.js" type="text/javascript"></script>
    <link href="../css/themes/default/easyui.css" rel="stylesheet" />
<script src="../js/jquery.easyui.min.js" type="text/javascript"></script> 

2.前台html只需要用到一个select控件

<select id="txtNewsTypes" multiple="true" style="width: 200px; height: 20px;"></select>

3.完成该需求的主要的js代码如下:

 var newsTypeJson = <%=GetNewsType()%>;
                $("#txtNewsTypes").combotree({
                    data:newsTypeJson,
                    cascadeCheck: $(this).is(':checked'),
                    setValue:1,
                    onCheck:function(node){
                        // 返回树对象
                        //var tree = $(this).tree;
                        // 选中的节点是否为叶子节点,如果不是叶子节点,清除选中$("#txtNewsTypes").combotree('clear');
                        //var isLeaf = tree('isLeaf', node.target);
              //修改jquery-easyui产生的html样式的父节点的样式,移除tree-checkbox tree-checkbox0样式即可 var $titles=$(this).find("span.tree-hit"); $titles.each(function(index,value){ $(this).siblings().eq(1).removeClass("tree-checkbox tree-checkbox0"); }) }, onLoadSuccess:function(node,data){ //折叠节点 $("#txtNewsTypes").combotree("tree").tree("collapseAll"); } });

4.后台生成json数据的方法代码如下:

 public string GetNewsType()
    {

        StringBuilder s = new StringBuilder();

        List<NewsType> data = NewsTypeManager.GetAllNewsList();

        List<NewsType> p_data = data.Where(d => d.FTypeId == 0).ToList();

        int i = 0, j = 0;
        s.Append("[");

        foreach (NewsType p_item in p_data)
        {
            if (j != 0)
                s.Append(",");
            j++;
            s.Append("{");
            s.Append("\"id\":\"" + p_item.TypeId + "\",");
            //设置父节点默认不展开
            //s.Append("\"state\":\"closed\",");
            s.Append("\"text\":\"" + p_item.TypeName + "\"");
            List<NewsType> c_data = data.Where(d => d.FTypeId == p_item.TypeId).ToList();
            if (c_data != null && c_data.Count != 0)
            {
                s.Append(",");
                s.Append("\"children\":");
                s.Append("[");
                for (i = 0; i < c_data.Count; i++)
                {
                    if (i != 0)
                        s.Append(",");
                    s.Append("{");
                    s.Append("\"id\":\"" + c_data[i].TypeId + "\",");
                    s.Append("\"text\":\"" + c_data[i].TypeName + "\"");
                    s.Append("}");
                }
                s.Append("]");
            }
            s.Append("}");
        }
        s.Append("]");



        return s.ToString();
    }

5.至此,该功能完成了,由于jquery-easyui没有提供方法来只隐藏父节点的checkbox,在不改变源代码的情况下,想了这个笨办法来修改样式达到实现需求的目的。

           

转载于:https://www.cnblogs.com/StevenDu/p/combotree.html

相关文章:

  • Oracle推出轻量级Java微服务框架Helidon
  • Postgres和MySQL创建用户并授予db权限
  • 自定义JSP标签库及Properties使用
  • Kubernetes - 集群内容器访问集群外服务
  • 同步和异步的区别
  • 认真的做羞羞的事 一颗种子的自我分享
  • Java异常机制
  • 使用Docker1.13.1快速部署ELK环境
  • SliTaz 从入门到精通
  • Decorator装饰者模式(结构型模式)
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • Anaconda3启动ipython的几种方式
  • QueryParser
  • SqlService 索引原理
  • 第五次实验
  • 【前端学习】-粗谈选择器
  • Akka系列(七):Actor持久化之Akka persistence
  • CSS3 变换
  • Java教程_软件开发基础
  • JDK9: 集成 Jshell 和 Maven 项目.
  • js继承的实现方法
  • LeetCode算法系列_0891_子序列宽度之和
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • REST架构的思考
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue实战(四)登录/注册页的实现
  • Yii源码解读-服务定位器(Service Locator)
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 计算机在识别图像时“看到”了什么?
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 在Mac OS X上安装 Ruby运行环境
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #HarmonyOS:基础语法
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (11)MATLAB PCA+SVM 人脸识别
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (分布式缓存)Redis哨兵
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (南京观海微电子)——COF介绍
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET 5种线程安全集合
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET DataGridView数据绑定说明
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?