jQuery easyui的tree用法

2020-12-13 14:28

阅读:406

标签:style   get   数据   os   类   cti   

由于easyui这个框架简化了不少开发过程,经常被拿来开发后台,但是其实有一个树型的控件,用起来稍微复杂一点,总结了一下最基本的用法!
首先是前台添加标签如下:
       
           
     
    其次添加引用包
       
       
       
       
     
    前台代码如下:
     
            isLoad = function () {
                $("#tt").tree({
                    checkbox: false,
                    url: "/Home/GetArea",
                    loadFilter: function (data) {
                        if (data) {
                            alert(data);
                            if (data.d){
                                return data.d
                            } else {
                                return data;
                            }
                        }
                    }
                    //formatter: function (node) {
                    // return node.text;
                    //}
                    //animate: true,
                    //lines:true,
                    //onClick:function (node) {
                    // alert(node.text);
                    //},
                    //onBeforeExpand: function (node,param) {
                    // $("tt").tree("options").url = "/Home/GetSubAreaById?parentId="+node.id;
                    //}
     
                });
            }
            $(function () {
                isLoad();
            });
       
     
    这里要说一下,loadfilter加上后就已经可以展示了,主要起过滤作用
    而如果不要loadfilter只要formatter的话,而可以自已定义需要显示的字段  以node.text表示显示text的值
    加上animate:true,则展开收缩时会缓慢进行,有动画的效果
    加上lines:true,则原先前面显示的是小三角soscw.com,搜素材变为树形的+号soscw.com,搜素材
    加上
    onClick:function (node) {
                        alert(node.text);
                    }
    则可以单击节点时显示相应的属性值
     
    实现的后台代码,写了一个treehelper类
    //有需要可以在拼接上加上图标属性等
        public class TreeHelper
        {
            public static string GetDataString(List list, int id)
            {
                StringBuilder sb = new StringBuilder();
                List tempList= list.Where(p=>p.AreaPId==id).ToList();
                if (tempList.Count>0)
                {
                    sb.Append("[");
                    for (int i = 0; i
                    {
                        string childString = GetDataString(list,tempList[i].AreaId);
                        if (!string.IsNullOrEmpty(childString))
                        {
                            sb.Append("{ \"id\":\"" + tempList[i].AreaId + "\",\"text\":\"" + tempList[i].AreaName + "\",\"state\":\"closed\",\"children\":");
                            sb.Append(childString);
                        }
                        else
                        {
                            if (tempList[i].AreaId%2==0)
                            {
                                sb.Append("{\"id\":\"" + tempList[i].AreaId + "\",\"text\":\"" + tempList[i].AreaName + "\"},");
                            }
                            else
                            {
                                sb.Append("{\"id\":\"" + tempList[i].AreaId + "\",\"text\":\"" + tempList[i].AreaName + "\"},");
                            }
                        }
                    }
                    sb.Replace(‘,‘,‘ ‘,sb.Length-1,1);
                    sb.Append("]},");
                }
                return sb.ToString();
            }
        }
    添加后台实现方法如下
            public ContentResult GetArea()
            {
                nononodeleteImportantEntities db = new nononodeleteImportantEntities();
                StringBuilder sb = new StringBuilder();
                List province = db.TblArea.ToList();
                if (province.Count > 0)
                {
                    sb.Append(TreeHelper.GetDataString(province, 0));
                    sb = sb.Remove(sb.Length - 2, 2);
                }
                return Content(sb.ToString());
           } 
     
     
     
    此类主要是用来拼接easyui 能识别的json数据的,为什么要拼接,1因为官方所提供的就是这样的,不容易出错,只是写起来稍显费劲
    后期将试着改用对象直接序列化json,应该可以简化不少
    有需要更多功能再去参考官方文档
     

    jQuery easyui的tree用法,搜素材,soscw.com

    jQuery easyui的tree用法

    标签:style   get   数据   os   类   cti   

    原文地址:http://www.cnblogs.com/caigen029/p/3793984.html


    评论


    亲,登录后才可以留言!