easyui_tree 复选框 动态加载树

controller动态获取单位用户树  
#region 下拉树菜单
        /// <summary>
        /// 获取工作人员树菜单
        /// </summary>
        /// <param name="addid"></param>
        /// <param name="unitid"></param>
        /// <returns></returns>
        public string GetUserMenu(int addid)
        {
            AID_UNIT_DAL unitdal = AID_UNIT_DAL._();

            decimal unitid = this.CurrentUnitId;
            List<AID_UNIT> unitList = unitdal.GetList().Where(c => c.UNITID == unitid).ToList();

            List<Menu> menulist = new List<Menu>();
            if (unitList.Count > 0)
            {
                Menu menu = new Menu();
                foreach (var page in unitList)
                {
                    menu.id = page.UNITID.ToString();
                    menu.text = page.UNITNAME;
                    var count = unitList.Where(c => c.PARENTUNIT == page.UNITID).Count();
                    if (count > 0)
                    {
                        menu.state = "closed";
                        BindMenu(menu, unitid);
                    }
                    BindStaffMenu(menu, unitid);
                    menulist.Add(menu);
                }
            }
            string js = JsonMapper.ToJson(menulist);
            return js;
        }
        /// <summary>
        /// 绑定用户信息
        /// </summary>
        /// <param name="staffMenu"></param>
        /// <param name="unitid"></param>
        private void BindStaffMenu(Menu staffMenu, decimal unitid)
        {
            INFO_STAFF_DAL staffdal = INFO_STAFF_DAL._();
            List<INFO_STAFF> staffList = staffdal.GetList().Where(c => c.WORKUNIT == unitid).ToList();

            foreach (var staff in staffList)
            {
                Menu childMenu = new Menu();
                childMenu.id = staff.STAFFID.ToString();
                childMenu.text = staff.STAFFNAME;
                //递归绑定
                // BindStaffMenu(childMenu,unitid);
                //给父菜单添加子菜单
                staffMenu.children.Add(childMenu);
            }
        }
        /// <summary>
        /// 绑定子单位
        /// </summary>
        /// <param name="parentMenu"></param>
        private void BindMenu(Menu parentMenu, decimal unitid)
        {
            AID_UNIT_DAL unitdal = AID_UNIT_DAL._();
            List<AID_UNIT> secondary = unitdal.GetList().Where(p => p.PARENTUNIT == unitid).ToList();
            foreach (var second in secondary)
            {
                Menu childMenu = new Menu();
                childMenu.id = second.UNITID.ToString();
                childMenu.text = second.UNITNAME;
                var count = secondary.Where(c => c.PARENTUNIT == second.UNITID).Count();
                if (count > 0)
                    childMenu.state = "closed";
                //递归绑定
                BindMenu(childMenu, unitid);
                //给父菜单添加子菜单
                parentMenu.children.Add(childMenu);
            }
        }

        //定义菜单类
        private class Menu
        {
            private string _id;
            private string _text;
            private string _state;
            private List<Menu> _children = new List<Menu>();
            public string id { get { return _id; } set { _id = value; } }
            public string text { get { return _text; } set { _text = value; } }
            public string state { get { return _state; } set { _state = value; } }
            public List<Menu> children { get { return _children; } set { _children = value; } }
        }
        #endregion
        /// <summary>
        /// 初始化单位下列树菜单
        /// </summary>
        /// <param name="addid">addid>0时,下拉树菜单含“顶级菜单”,addid<0时,下拉树菜单不含“顶级菜单”</param>
        /// <returns></returns>
        public ActionResult getReletiveUser(int addid)
        {
            string js = GetUserMenu(addid);
            return Content(js, "application/json");
        }
js动态生成复选框
<script type="text/javascript">
       $("#USID").tree({
        url: "/SystemMng/getReletiveUser?addid=" + 0,
        required: true,
        panelHeight: 120,
        checkbox: true,
        onBeforeSelect: function (node) {
            if (node.state == "open") {
                $("#hidUnit").val(node.id);
            } else {
                alert("请选择子单位!")
            }
        }
    });
</script>
 <ul class="easyui-tree" type="text" name="USID" id="USID" style="width:100%; height:34px; margin-left:15px;" data-options=""> 

				
时间: 2024-08-24 07:55:53

easyui_tree 复选框 动态加载树的相关文章

jQuery 动态加载树

本案例中用到了jquery的 tree插件,在本文的附件中可以下载 jsp代码: <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request

ExtJS 动态加载树treepanel

先来看看效果: 一.新建一个TreeStore,并添加根节点 Ext.define('Demo1.store.TreeDemoStore', { extend: 'Ext.data.TreeStore', root: { text: '目录树', id: 0 } }); 二.在view中添加treepanel,绑定TreeDemoStore Ext.define('Demo1.view.MyViewport', { extend: 'Ext.container.Viewport', initCo

ExtJS 创建动态加载树

Ext 中导航树的创建有两种方式:1.首先将所有的数据读出来,然后绑定到前台页面.2.每点击一个节点展开后加载子节点.在数据量比较小的时候使用第一种方式加载的会快一些,然而当数据量比较大的时候,我还是建议使用第二种方式的.这里我就来介绍一下第二种树的展示方式. 源码奉上: 1 //创建model 2 Ext.define("treeModel",{ 3 extend:"Ext.data.Model", 4 fields:["OUID","

左侧动态加载树,右侧显示树节点的信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><!--[if IE 8]> <html lang="en" class="ie8 no-js"> <![endif]--><!--[if IE 9]> <html lang="en

jquery的ztree插件的使用(完成动态加载树型结构)

第一步:在left.jsp中 <script language="JavaScript" src="${pageContext.request.contextPath }/script/jquery-1.4.2.js"></script> <script language="JavaScript" src="${pageContext.request.contextPath }/script/jquery-

JS下拉复选框的实现

<html>   <head>     <script src="jquery-1.7.2.min.js"></script>     <script src="jquery.easyui.min.js" ></script>     <link   rel="stylesheet" href="css/themes/metro/easyui.css"

CheckBox复选框回显

CheckBox复选框回显,分两个部分查数据: 其一: 查询所有复选框数据,拼接成复选框 其二,根据查询实际场景id,查询复选框对应数据, 设计循环嵌套逻辑进行复选框数据回显默认选中: 1 //双击行事件 2 function onDblClickRow(rowIndex, rowData){ 3 4 //权限复选框置空 5 $('#permissionTd').html(""); 6 7 //打开修改窗口 8 $('#editWindow').window("open&qu

jQuery——操作复选框(checkbox) attr checked不起作用

这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr('checked','checked');与attr('checked',true); 都不好使,要么第一次成功了,第二次调用就没反应,完全不起作用了.那到底是什么原因呢? 害得'跑客教授'到处到网上搜 jQuery checkbox的操作,动态选择的相关文章,都写着是这样的实现代码 $('input[type=checkbox]').attr('checked','checked');//全选,设置属性

jQuery 操作复选框(checkbox) attr checked不起作用

jQuery 更改checkbox的状态,无效 $(this).attr("checked", false).checkboxradio("refresh");     //应该这么写吧,少了$这个东东~~~跟js混淆了 jQuery 操作复选框(checkbox) attr checked不起作用 这 天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr(‘checked’,'checked’);与attr(‘checked’,t