zoukankan      html  css  js  c++  java
  • Jquery EasyUI treegrid的使用(asp.net后台)

    废话不多说,先看效果图

    一、引入文件

        <link href="~/Content/jquery-easyui-1.5.2/themes/default/easyui.css" rel="stylesheet" />
        <link href="~/Content/jquery-easyui-1.5.2/themes/icon.css" rel="stylesheet" />
        <script src="~/Content/jquery-easyui-1.5.2/jquery.min.js"></script>
        <script src="~/Content/jquery-easyui-1.5.2/jquery.easyui.min.js"></script>
        <script src="~/Content/jquery-easyui-1.5.2/locale/easyui-lang-zh_CN.js"></script>

    二、界面布局

    <h1>TreeGrid</h1>
    <div class="panel datagrid">
         <table id="tg"></table>
    </div>

    三、后台控制器

      public class HomeController : Controller
        {
            [Dependency]
            public GradeBLL gradeBLL { get; set; }
            [Dependency]
            public ClassBLL classBLl { get; set; }
            [Dependency]
            public StudentBLL studentBLL { get; set; }
            // GET: Home
            public ActionResult Index()
            {
                return View();
            }
    
            [HttpGet]
            public JsonResult GetJsonTree(string Id)
            {
                HttpResponeResult httpResult = new HttpResponeResult();
                try
                {
                    List<TreeModel> list = new List<TreeModel>();
    
                    //首次加载
                    if (string.IsNullOrEmpty(Id))
                    {
                        var gradeList = gradeBLL.GetAllGradeList();
                        //转换为节点树列表
                        foreach (var grade in gradeList)
                        {
                           
                            TreeModel node = new TreeModel
                            {
                                Id = grade.Id.ToString(),
                              //  Code ="",
                                state = "closed",
                                iconCls = "icon-server",
                                Text = grade.GradeName
                            };
                         
                            node.CreateTime = grade.CreatTime;
    
                            list.Add(node);
                        }
                        return Json(list, JsonRequestBehavior.AllowGet);
                    }
    
                    string[] idList = Id.Split('-');
    
                    //获取该年级下的班级
                    if (idList.Length == 1)
                    {
                        var gradeId = idList[0];
                        var classList = classBLl.GetAllClassList(gradeId);//获取所有班级
    
                        foreach (var floor in classList)
                        {
                         
                            TreeModel node = new TreeModel
                            {
                                children = new List<TreeModel>(),
                                Id = gradeId + "-" + floor.Id.ToString(),         
                                state = "closed",
                                iconCls = "icon-drive",
                                Text = floor.ClassName
                            };                     
                            node.CreateTime = floor.CreatTime;
                            list.Add(node);
                        }
                    }
    
                    //获取班级下的学生
                    if (idList.Length == 2)
                    {
                        var gradeId = idList[0];
                        var floorId = idList[1];
                        int i = 0;
                        var studentList = studentBLL.GetAllStudentList(gradeId, floorId);
                        foreach (var student in studentList)
                        {
                            TreeModel node = new TreeModel
                            {
                                children = new List<TreeModel>(),
                                Id = gradeId + "-" + floorId + "-" + student.Id.ToString() + "-" + i,
                                state = "open",
                                iconCls = "icon-group",
                                Text = student.Name,
                              
                            };
    
                            list.Add(node);
                            i++;
                        }
                    }
    
                    return Json(list, JsonRequestBehavior.AllowGet);
                }
                catch (Exception ex)
                {
                    return Json(httpResult.HttpResultFailure("获取数据失败。原因", ex.Message), JsonRequestBehavior.AllowGet);
                }
            }
    
        }

    四、BLL逻辑

      [Dependency]
         public GradeDAL gradeDAL { get; set; }
    
            public List<Grade> GetAllGradeList()
            {
                var mql = GradeSet.SelectAll();
                List<Grade> list = gradeDAL.GetEntities(mql);
                return list;
            }
    //---------------------分割线--------------------------------------
           [Dependency]
            public ClassDAL classDAl { get; set; }
    
            public List<Class> GetAllClassList(string GradeId)
            {
                var mql = ClassSet.SelectAll().Where(ClassSet.GradeId.Equal(GradeId));
                List<Class> list = classDAl.GetEntities(mql);
                return list;
            }
    
    //---------------------分割线--------------------------------------
      [Dependency]
            public StudentDAl studentDaL { get; set; }
    
            public List<Student> GetAllStudentList(string gradeId, string ClassId)
            {
                var mql = StudentSet.SelectAll().Where(StudentSet.GradeId.Equal(gradeId).And(StudentSet.ClassId.Equal(ClassId)));
                List<Student> list = studentDaL.GetEntities(mql);
                return list;
            }

    五、js部分

    $(function () {
        $('#tg').treegrid({
            title: 'TreeGrid with Footer',
            iconCls: 'icon-ok',
             700,
            height: 400,     
            rownumbers: true,
            animate: true,
            collapsible: true,
            fitColumns: true,
            url: '/Home/GetJsonTree',
            method: 'get',
            idField: 'Id',
            treeField: 'Text',
            showFooter: true,
            onClickRow:onClickRow,
            columns: [[
               { title: '名称', field: 'Text',  160 },
               { title: '创建时间', field: 'CreateTime',  120 }
            ]]
        });
    })
    
    /*响应节点点击事件*/
    function onClickRow(row) {
        $("#tg").treegrid('expand', row.Id);
    }

     总结

    树形网格之间存在父/子节点关系让我在写代码的时候纠结了很久,网上的Dome看了有点懵逼,但终归把效果实现了,作为一名小白不太会写博客,所有代码方面没有过多的介绍,有什么不对的地方,欢迎指教!!!!

  • 相关阅读:
    再学 GDI+[38]: 文本输出 DrawString、TGPFont
    再学 GDI+[42]: 文本输出 字号单位
    再学 GDI+[41]: 文本输出 控制输出字符的个数
    再学 GDI+[45]: 文本输出 文本呈现质量
    博客园电子期刊2008年11月半月刊(上)发布啦
    博客园电子期刊2008年12月●半月刊(上)发布啦
    招聘频道功能更新:RSS订阅
    博客园新版招聘频道(job.cnblogs.com)上线测试啦
    《悟透JavaScript》到货了
    博客园电子期刊2008年11月●半月刊(下)发布啦
  • 原文地址:https://www.cnblogs.com/lemonmoney/p/6963891.html
Copyright © 2011-2022 走看看