首页 > 其他分享 >ztree分类页面代码

ztree分类页面代码

时间:2023-07-26 20:22:07浏览次数:38  
标签:treeNode name val 代码 ztree var return id 页面

ztree分类页面代码

 

 

 

 

后台代码:

    [Area("Adnn1n")]
    public class CategoryController : BaseController
    {
        private readonly DAL.Interface.ICategory dal;

        public CategoryController(ICategory dal)
        {
            this.dal = dal;
        }

        public IActionResult Index()
        {
            List<Model.Category> listca = dal.GetList("");
            ArrayList arr =  TreeTool.GetCaJson(listca);

            ViewBag.ztreejson = Newtonsoft.Json.JsonConvert.SerializeObject(arr);
            return View();
        }

        [HttpPost]
        public ActionResult Add(Model.Category m)
        {
            try
            {
                if (m.Id == 0)
                {
                    dal.Add(m);
                    return Json(new { code = 0, msg = "新增成功!" });
                }
                else
                {
                    dal.Update(m);
                    return Json(new { code = 0, msg = "编辑成功!" });
                }
            }
            catch (Exception ex)
            {
                return Json(new { code = 1, msg = $"出错:{ex.Message}" });
            }
        }

        public ActionResult Delete(string ids)
        {
            try
            {
                int success = 0;
                string[] ss = ids.Split(',');
                foreach (var item in ss)
                {
                    int x;
                    if (int.TryParse(item, out x))
                    {



                        dal.Delete(x);
                        success++;
                    }
                }
                return Json(new { code = 0, msg = "成功删除" + success + "条记录!" });
            }
            catch (Exception ex)
            {
                return Json(new { code = 1, msg = $"出错:{ex.Message}" });
            }
        }

        
    }

  

 

前台代码:

 

@{
    ViewBag.Title = "新闻分类";
}
<link href="~/ztree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<script src="~/ztree/js/jquery.ztree.core.js"></script>
<table class="layui-table">
    <tr>
        <td style="vertical-align:top;">
            <ul id="treeDemo" class="ztree"></ul>
        </td>
        <td>
            <fieldset>
                <legend>增加</legend>
                <div class="layui-form-item">
                    <label class="layui-form-label">父级</label>
                    <div class="layui-input-block">
                        <div id="addpname" class="layui-input-inline"></div>
                        <div class="layui-input-inline">
                            <button type="button" class="layui-btn layui-btn-xs" onclick="settop()">设为顶级</button>
                        </div>

                    </div>
                    <input id="addpid" type="hidden" value="0" />

                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">名称</label>
                    <div class="layui-input-block">
                        <input type="text" id="addname" name="addname" required lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button onclick="add()" class="layui-btn" lay-submit lay-filter="formDemo">新增</button>
                    </div>
                </div>
            </fieldset>

            <fieldset>
                <legend>编辑</legend>
                <div class="layui-form-item">
                    <label class="layui-form-label">父级ID</label>
                    <div class="layui-input-block">
                        <input type="text" id="modpid" required lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">名称</label>
                    <div class="layui-input-block">
                        <input type="text" id="modname" required lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button onclick="mod()" class="layui-btn layui-btn-normal" lay-submit lay-filter="formDemo">编辑</button>
                    </div>
                </div>
            </fieldset>

            <fieldset>
                <legend>删除</legend>
                <div class="layui-form-item">
                    <label class="layui-form-label">所选</label>
                    <div id="delname" class="layui-input-block">
                    </div>
                    <input type="hidden" id="delid" value="0" />
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button onclick="del()" class="layui-btn layui-btn-danger" lay-submit lay-filter="formDemo">删除</button>
                    </div>
                </div>
            </fieldset>
        </td>
    </tr>
</table>

<script>
    var zTreeObj;
    // zTree 的参数配置,深入使用请参考 API 文档(setting 配置详解)
    var setting = {
        callback: {
            onClick: zTreeOnClick
        }
    };
    // zTree 的数据属性,深入使用请参考 API 文档(zTreeNode 节点数据详解)
    var zNodes = @Html.Raw(ViewBag.ztreejson)
        //[
        //    {
        //        name: "test1", open: true, children: [
        //            { name: "test1_1" }, { name: "test1_2" }]
        //    },
        //    {
        //        name: "test2", open: true, children: [
        //            { name: "test2_1" }, { name: "test2_2" }]
        //    }
        //];
        $(document).ready(function () {
            zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
        });

    //树结点点击
    function zTreeOnClick(event, treeId, treeNode) {
        console.log("id:" + treeNode.id + ",name:" + treeNode.name + ",pid:" + treeNode.pid + ",pname:" + treeNode.pname);
        //新增区域里的父级是当前点击的节点,即要在当前点击的结点下添加分类
        $("#addpid").val(treeNode.id);
        $("#addpname").html(treeNode.caname);
        //编辑区域
        $('#modpid').val(treeNode.pid);
        $('#modname').val(treeNode.caname);
        //删除区域
        $("#delname").html(treeNode.caname);
        $("#delid").val(treeNode.id);

    };
    //设为顶级
    function settop() {
        $("#addpid").val(0);
        $("#addpname").html('');
    }
    //新增
    function add() {
        var pid = $("#addpid").val();
        var name = $('#addname').val();
        if (name == "") {
            alert("请输入要新增的分类名称。");
            return;
        }
        var postdata = { Pid: pid, Caname: name };
        var url = "/adnn1n/category/add";
        $.post(url, postdata, function (data) {

            alert(data.msg);
            if (data.code == 0) {
                location.reload();
            }

        })
    }

    //删除
    function del() {
        if (confirm('是否确认删除该分类?')) {
            var id = $("#delid").val();
            if (id == 0) {
                alert("请选择要删除的分类。");
                return;
            }
            var url = "/adnn1n/category/delete?ids=" + id;
            $.get(url, function (data) {
                alert(data.msg);
                if (data.code == 0) {
                    location.reload();
                }
            })
        }
    }

    //编辑
    function mod() {
        var id = $('#delid').val();
        if (id == 0) {
            alert("请选择要编辑的分类。");
            return;
        }
        var name = $("#modname").val();
        if (name == "") {
            alert("请输入要编辑的分类名称。");
            return;
        }
        var pid = $('#modpid').val();
        if (pid == "") {
            alert("请输入pid。");
            return;
        }

        var postdata = { Id: id, Caname: name, Pid: pid };
        var url = "/adnn1n/category/add";
        $.post(url, postdata, function (data) {

            alert(data.msg);
            if (data.code == 0) {
                location.reload();
            }

        })
    }
</script>

  

 

标签:treeNode,name,val,代码,ztree,var,return,id,页面
From: https://www.cnblogs.com/niunan/p/17583466.html

相关文章

  • 代码练习
    错误及解决编译长字符串时运行结果出现如下问题错误的运行结果:正确结果应如下:此问题产生的原因:startswith函数在识别’GZM‘的时候,将’GZM_D‘中的’GZM‘也识别了出来错误代码如下:ifstr.startswith('GZM'):self.Ex_Gzm.Keyword='GZM'self.Ex_Gzm.S2_Input......
  • zTree -- jQuery 树插件的使用包括添加、编辑(MVC)
    zTree--jQuery树插件网址:https://www.treejs.cn/v3/main.php#_zTreeInfo自行下载所需要的文件我自己写的一些具体示例:使用的.netCore6后端使用的ORM框架SqlSugar的中的ToTreeAsync方法返回的需要的数据格式,如果没用SqlSugar可以自己写递归来完成publicasyncTask<Resul......
  • 代码随想录算法训练营第一天| LeetCode 704. 二分查找、LeetCode 27. 移除元素
    704.二分查找    题目链接:https://leetcode.cn/problems/binary-search/   视频链接:https://www.bilibili.com/video/BV1fA4y1o715     文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html    卡哥的题目建......
  • js监视有没有被刷新后跳转其他页面
    js监视有没有被刷新window.addEventListener('beforeunload',function(event){//这里可以执行你想要的操作,例如询问用户是否确认离开页面window.location.href='https://mp.gnek257.autos/DIET/TR/US/LP2/index.html';})在beforeunload事件处理程序中使用window.......
  • C/C++代码混淆器
    C/C++代码混淆器试图通过混淆C/C++源代码以达到保护知识产权的目的的做法其实就是自欺欺人,因为不论如何混淆代码,到了编译阶段代码终究是要被还原成它本来的样子,说到底,这只是一层窗户纸而已。我曾利用宏机制实现过一个C/C++代码混淆器,效果乍一看还真能给人一种眼前一亮的神奇,......
  • 低代码开发为什么能长盛不衰?
    低代码是一种通过可视化的界面与配置为开发者提供一个快速创建应用软件的开发环境的技术。2018年,西门子收购低代码企业Mendix、美国低代码独角兽企业Outsystems获得1.5亿美元的融资,这两个事件的发生将低代码市场带入资本方的视野,中国低代码市场也在此时进入发展期。数据统计表示,中......
  • H5页面中调用微信和支付宝支付
    第一步:先判断当前环境判断用户所属环境,根据环境不同,执行不同的支付程序。if(/MicroMessenger/.test(window.navigator.userAgent)){//alert('微信');}elseif(/AlipayClient/.test(window.navigator.userAgent)){//alert('支付宝......
  • Java中代码Bug记录--泛型失效、数组删除、HashMap死循环
    最近在工作的过程中,遇到了不少奇怪自己或者同事的Bug,都是一些出乎意料的,不太容易发现的,记录一下来帮助可能也遇到了这些Bug的人1.编译时泛型校验失效Map<String,String>nameToType=newHashMap<>();nameToType.put("testName",123);//java:不兼容的类型:int无法转......
  • SAM代码解读
    Sam项目代码的初步解读,对其中的SamPredictor、ImageEncoderViT、PromptEncoder和MaskDecoder进行解读,与https://hpg123.blog.csdn.net/article/details/131194434的使用手册内容相呼应。1、整体介绍Sam由ImageEncoderViT,PromptEncoder,MaskDecoder三个部件组成,ImageEncoderVi......
  • 手机上vue页面返回时如何保持原来的位置
    1,问题的提出采用vue做手机评分页面的前端,页面显示多个评分项的分数和总分。每个评分项有个修改按钮,按下后弹出新的页面,用户填写分数后按提交按钮,则保存数据、关闭页面、回到前一页。此时,页面上显示的分数和总分会刷新,但是显示的页面位置未保留修改前的位置,而是回到了顶部显示。......