zTree -- jQuery 树插件的使用包括添加、编辑(MVC)

这篇具有很好参考价值的文章主要介绍了zTree -- jQuery 树插件的使用包括添加、编辑(MVC)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

zTree -- jQuery 树插件网址:https://www.treejs.cn/v3/main.php#_zTreeInfo

自行下载所需要的文件

我自己写的一些具体示例:

使用的.netCore 6 后端使用的ORM框架SqlSugar的中的ToTreeAsync方法返回的需要的数据格式,如果没用SqlSugar可以自己写递归来完成

public async Task<ResultDto<List<DepartmentDto>>> GetZreeInfo(long pId)
        {
            try
            {
                var tree = await _db.Queryable<DepartmentModel>().Select(x=>new DepartmentDto()).ToTreeAsync(it => it.children, it => it.Dep_Pid, 0);

                return new ResultDto<List<DepartmentDto>>
                {
                    code = 0,
                    data = tree,
                    msg = "",
                    count = tree.Count,
                };

            }
            catch (Exception)
            {

                throw;
            }
        }

具体的一些文件的引用根据自己的实际情况去引用

zTree -- jQuery 树插件的使用包括添加、编辑(MVC)

接下来就是怎么去在MVC中去使用

首先是去写添加的时候

<div class="layui-form-item">
        <label class="layui-form-label">责任科室:</label>
        <div class="layui-input-block">
            <div class="layui-inline">
                <input type="text" id="selectedNode" name="Dep_Names" readonly class="layui-input">
            </div>
            <div class="layui-inline">
                <button type="button" class="layui-btn layui-btn-primary" onclick="openTree()">选择</button>
            </div>
        </div>
</div>

这段代码写在你的form表单中你需要的位置即可,注意标签中的name是你数据库中所定义的你需要添加的值的名称

<!-- 树形选择器的弹层 -->
<script type="text/html" id="treeSelector">
    <ul id="treeDemo" class="ztree"></ul>
</script>

<script>
    layui.use(['layer'], function () {
        var layer = layui.layer;
        var treeData = [];
        $.ajax({
            url: '@Url.Action("GetZreeInfo")',
            type: 'get',
            async: false,
            success: function (res) {
                treeData = res.data;
            }
        })
        // 打开责任科室树选择器
        window.openTree = function () {
            var index = layer.open({
                type: 1,
                title: '选择科室',
                content: $('#treeSelector').html(),
                area: ['300px', '500px'],
                success: function (layero, index) {
                    // 渲染责任科室树选择器
                    var setting = {
                        view: {
                            dblClickExpand: false, // 禁止双击展开收起
                            showLine: true // 显示连接线
                        },
                        data: {
                            simpleData: {
                                enable: true,
                                idKey: 'Dep_Id',
                                pIdKey: null,
                                rootPId: null
                            },
                            key: {
                                name: 'Dep_Name', // 节点名称字段
                                title: 'Dep_Name' // 新增节点名称字段
                            }
                        },
                        check: {
                            enable: true, // 开启多选功能
                            chkStyle: 'checkbox', // 设置选择框的样式为复选框
                            chkboxType: { y: 's', n: 's' } // 只在父节点和子节点之间设置关联关系,不关联父级
                        },
                        callback: {
                            onCheck: function (event, treeId, treeNode) {
                                var zTreeObj = $.fn.zTree.getZTreeObj(treeId);
                                var nodes = zTreeObj.getCheckedNodes(true);

                                var selectedNodeNames = [];
                                for (var i = 0; i < nodes.length; i++) {
                                    if (!nodes[i].isParent) { // 判断节点是否为父节点
                                        selectedNodeNames.push(nodes[i].Dep_Name); // 只将非父节点的值添加到数组中
                                    }
                                }

                                $('#selectedNode').val(selectedNodeNames.join(', '));

                                var selectedNodeIds = []; // 存储选择的节点ID

                                for (var i = 0; i < nodes.length; i++) {
                                    selectedNodeIds.push(nodes[i].Dep_Id); // ID添加到数组中
                                }
                                $('#selectedNodeIds').val(selectedNodeIds.join(', '));
                            }
                        }
                    };
                    $.fn.zTree.init($('#treeDemo'), setting, treeData);
                }
            });
        };
    });
</script>

最后根据<scrip>中的代码具体的参考去完成

接下来是编辑

同样的去复制你的添加界面的代码 只不过我在这里使用到了 asp-for来进行数据回显,你可以根据你自己的方式去实现

<div class="layui-form-item layui-hide">
        <div class="layui-input-block">
            <input type="text" id="selectedNodeId" asp-for="Dep_Ids" readonly class="layui-input">
            <input type="hidden" asp-for="Ope_Password" />
            <input type="hidden" asp-for="Ope_Id" />
            <button class="layui-btn" lay-submit lay-filter="formDemo" id="formDemo">添加</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
</div>
<!-- 树形选择器的弹层 -->
<script type="text/html" id="treeSelector">
    <ul id="treeDemo" class="ztree"></ul>
</script>

<script>
    layui.use(['layer'], function () {
        var layer = layui.layer;
        var treeData = [];
        $.ajax({
            url: '@Url.Action("GetZreeInfo")',
            type: 'get',
            async: false,
            success: function (res) {
                treeData = res.data;
            }
        })
        // 打开责任科室树选择器
        window.openTree = function () {
            var index = layer.open({
                type: 1,
                title: '选择科室',
                content: $('#treeSelector').html(),
                area: ['300px', '400px'],
                success: function (layero, index) {
                    // 渲染责任科室树选择器
                    var setting = {
                        view: {
                            dblClickExpand: false, // 禁止双击展开收起
                            showLine: true // 显示连接线
                        },
                        data: {
                            simpleData: {
                                enable: true,
                                idKey: 'Dep_Id',
                                pIdKey: null,
                                rootPId: null
                            },
                            key: {
                                name: 'Dep_Name', // 节点名称字段
                                title: 'Dep_Name' // 新增节点名称字段
                            }
                        },
                        check: {
                            enable: true, // 开启多选功能
                            chkStyle: 'checkbox', // 设置选择框的样式为复选框
                            chkboxType: { y: 's', n: 's' } // 只在父节点和子节点之间设置关联关系,不关联父级
                        },
                        callback: {
                            onCheck: function (event, treeId, treeNode) {
                                var zTreeObj = $.fn.zTree.getZTreeObj(treeId);
                                var nodes = zTreeObj.getCheckedNodes(true);

                                var selectedNodeNames = [];
                                for (var i = 0; i < nodes.length; i++) {
                                    if (!nodes[i].isParent) { // 判断节点是否为父节点
                                        selectedNodeNames.push(nodes[i].Dep_Name); // 只将非父节点的值添加到数组中
                                    }
                                }

                                $('#selectedNode').val(selectedNodeNames.join(', '));

                                var selectedNodeIds = []; // 存储选择的节点ID

                                for (var i = 0; i < nodes.length; i++) {
                                    selectedNodeIds.push(nodes[i].Dep_Id); // ID添加到数组中

                                }
                                $('#selectedNodeId').val(selectedNodeIds.join(', '));
                            }
                        }
                    };
                    $.fn.zTree.init($('#treeDemo'), setting, treeData);
                    //反填树的操作
                    //获取AoId的值
                    var AoId = $("#selectedNodeId").val();
                    console.log(AoId);
                    //转化为数组
                    var selectedNodeIds = AoId.split(",");
                    //获取责任科室树的 zTree 对象
                    var zTreeObj = $.fn.zTree.getZTreeObj("treeDemo");
                    //设置为选中状态
                    for (var i = 0; i < selectedNodeIds.length; i++) {
                        var node = zTreeObj.getNodeByParam("Dep_Id", selectedNodeIds[i], null);
                        zTreeObj.checkNode(node, true, false);  //设置为选中状态
                    }
                    // 更新已选择的节点名称
                    var nodes = zTreeObj.getCheckedNodes(true);
                    var selectedNodeNames = [];
                    for (var i = 0; i < nodes.length; i++) {
                        if (!nodes[i].isParent) {
                            selectedNodeNames.push(nodes[i].Dep_Name);
                        }
                    }

                    $('#selectedNode').val(selectedNodeNames.join(', '));

                    // 更新已选择的节点ID
                    var selectedNodeId = [];
                    for (var i = 0; i < nodes.length; i++) {
                        if (!nodes[i].isParent) {
                            selectedNodeId.push(nodes[i].Dep_Id);
                        }
                    }
                    $('#selectedNodeId').val(selectedNodeId.join(', '));
                }
            });
        };
    });
</script>

代码仅供参考,具体的实现可以参考上面的网址和代码。文章来源地址https://www.toymoban.com/news/detail-605140.html

到了这里,关于zTree -- jQuery 树插件的使用包括添加、编辑(MVC)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)

    使用 div 图层灵活显示在浏览器的任何位置。默认情况下指定 div 不可见 样式表 在JQuery的官方网站可以下载对应的css样式表。打开官网的样例页。 找到样式表引用路径 将其下载到本机,其中thme 比如,我的样式表路径为 JQuery库 下载JQuery和JQuery-ui库,并放置在对应的路径中

    2024年01月15日
    浏览(38)
  • 【Jquery插件】Owl Carousel轮播插件介绍与使用

    Owl Carousel:Basic Demo | Owl Carousel | 2.3.4 (owlcarousel2.github.io) 「Owl Carousel」插件常用的参数配置如下: 参数名称 参数类型 默认值 说明 items number 3 设置同时显示的轮播项数 loop boolean false 是否开启循环播放 autoplay boolean false 是否自动播放 autoplayTimeout number 5000 自动播放等待时间,

    2024年02月06日
    浏览(34)
  • IDEA的BitoAI插件的简单使用指南(包括安装和注册)

    注:插件声称使用的是GPT-4模型算法,并且多平台支持,包括vscode、pycharm等,这里只演示idea的安装和使用 1.安装 直接在idea的插件商城中搜索即可 2.注册 使用bito插件需要使用邮箱注册,注册非常简单,只需要输入邮箱,然后填写验证码即可。 3.使用 有两种用法。 用法一:首

    2024年02月04日
    浏览(47)
  • 【约束布局】使用 Design 模式编辑 ConstraintLayout 约束布局 ( 添加 Guideline 引导线 | 添加 FragmentContainerView )

    向约束布局 ConstraintLayout 中添加两个 Fragment , 垂直方向各占 50 % , 一个在屏幕上半部分 , 一个占据屏幕下半部分 ; 向 约束布局 中添加一条 Guideline 引导线 , 点击 布局中的 Guidelines 按钮 , 在弹出的 下拉菜单中 , 选择 Horizontal Guideline 水平引导线 , 此时在下方的界面中 , 就会出现

    2023年04月09日
    浏览(36)
  • fast admin 使用百度富文本编辑器添加赋值

    这篇文章为大家介绍一下fastadmin框架如何引入并使用百度富文本 文章目录 前言 下载文件 编辑文件 配置 上传图片 添加代码 总结 在学习fastadmin的时候需要使用到富文本编辑器,于是查阅了一下资料,实现后将我的经验分享给大家 点击下载文件 https://download.csdn.net/download/lh

    2024年02月09日
    浏览(51)
  • 云计算模式的区域LIS系统源码,基于ASP.NET+JQuery、EasyUI+MVC技术架构开发

    云计算模式的区域LIS系统源码 云LIS系统源码,自主版权 LIS系统 是专为医院检验科的仪器设备能与计算机连接。可通过LIS系统向仪器发送指令,让仪器自动操作和接收仪器数据。并快速的将检验仪器中的数据导入到医生工作站中进行管理,且可将检验结果发布到各个受检(门

    2024年02月08日
    浏览(43)
  • django使用ztree实现树状结构效果,子节点实现动态加载(l懒加载)

         由于最近项目中需要实现树状结构的效果,考虑到ztree这个组件大家用的比较多,因此打算在django项目中集成ztree来实现树状的效果。最终实现的示例效果如下:         点击父节点,如果有子节点,则从后台动态请求数据,然后显示出子节点的数据。             

    2024年02月14日
    浏览(50)
  • 【sketchup 2021】草图大师图像输出与渲染之Enscape渲染(优秀的实时渲染软件)的高级使用【灯光的添加、代理模型的添加、材质编辑器、视频编辑器、全景导出并编辑】

    灯光在这里面 我下面用这个模拟房间来说明 单面建模简单来说就是一个面,这样渲染出来的可能会出现漏光【所以我们室内建模一定要双面建模,避免出现漏光】,如下: 双面建模呢,就是把面拉了一定高度出来,也就是有厚度【如墙壁】 这样呢就不会有漏光的现象发生

    2024年02月05日
    浏览(67)
  • 使用Notepad++编辑器,安装compare比较差异插件

    概述        是一款非常有特色的编辑器, Notepad++ 是开源软件, Notepad++ 中文版可以免费使用。 操作步骤: 1、在工具栏 -“插件”选项。  2、勾选Compare选项,点击右上角“安装”即可。 3、 确认安装插件   4、下载插件 5、插件已安装 6、打开文件 7、如果不想要,也可以

    2024年01月20日
    浏览(42)
  • 如何使用ComPDFKit Web SDK添加在线编辑PDF文档功能

    文档编辑功能提供了一系列的操作页面的能力,使用户能够控制文档结构,并调整文档的布局和格式,确保文档内容以合理有序的方式精准呈现。 ComPDFKit 文档编辑的优势 插入或删除页面: 向文档插入或删除页面,以满足特定的排版要求。 文档结构调整: 调整页面排列顺

    2024年02月19日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包