• easyui-tree绑定数据的几种方式


    没想到easyui对json数据格式要求的那么严谨,折腾了半天

    第一种直接使用标签方式,很容易就加载出来了:

     1 <ul class="easyui-tree">
     2         <li>
     3             <span>My Documents</span>
     4             <ul>
     5                 <li data-options="state:'closed'">
     6                     <span>Photos</span>
     7                     <ul>
     8                         <li>
     9                             <span>Friend</span>
    10                         </li>
    11                         <li>
    12                             <span>Wife</span>
    13                         </li>
    14                         <li>
    15                             <span>Company</span>
    16                         </li>
    17                     </ul>
    18                 </li>
    19                 <li>
    20                     <span>Program Files</span>
    21                     <ul>
    22                         <li>Intel</li>
    23                         <li>Java</li>
    24                         <li>Microsoft Office</li>
    25                         <li>Games</li>
    26                     </ul>
    27                 </li>
    28                 <li>index.html</li>
    29                 <li>about.html</li>
    30                 <li>welcome.html</li>
    31             </ul>
    32         </li>
    33     </ul>

    第二种,在js中绑定:

     <ul id="myTree"></ul>
    $('#myTree').tree({
                        method: 'get',
                        url: 'tree_data1.json'
    
                    });

    注意:easyui tree获取数据的HTTP方法默认是post,但是用post的时候却报了谓词错误, 所以指定了get ----》需要查查,还不了解因果。

    三,用data直接绑json:

     $.ajax({
         type: 'GET',
         url: 'tree_data1.json',
         success: function (result) {
             var myJson = eval('(' + result + ')');
             $('#myTree').tree({
                 data: myJson
             });
         }
     });

    这种方式绑定下面的这种json数据格式是有效的,但是方法二却绑不上:

    [{ 'text':'.Net','state':'closed','children':[{'text':'C#'},{'text':'asp.Net'}]},{'text':'Java'}]

     一般最好用双引号

    第四种:与第二种js绑定其实都是一样的只是写在元素标签上了而已

     <ul class=" easyui-tree" data-options=" url:'JsonHandler.ashx'">

    JsonHandler.ashx是asp.net中的一般处理文件,输出json串,当然这个返回的接送数据也要和第二种的json一致,不然还是绑不上

    相关参考http://www.zi-han.net/case/easyui/datagrid&tree.html#tree

    效果图:

                                                          

     

     后台根据id获取多级树:

    创建树的实体类大概写了几个树常用到的属性

    1 public class TreeEntity {
    2     public string id { get; set; }
    3     public string text { get; set; }
    4     public string iconCls {
    5         get { return "icon-group-bank"; }
    6     }
    7     public List<TreeEntity> children { get; set; }
    8  }

    一般处理处理程序序列化输出树:

     1   public void ProcessRequest(HttpContext context) {
     2 
     3         Int32 groupId = (Int32)context.Session["LoginUserGroupID2"];
     4         string groupName = SqlDataHelper.GetGroupNameById(groupId);
     5 
     6         List<TreeEntity> list = new List<TreeEntity>();
     7         list.Add(new TreeEntity() {
     8             id = groupId.ToString(),
     9             text = groupName,
    10             children = GetTreeChildren(groupId)
    11         });
    12         string responseString = ClassHelper.ObjectToJSON(list);//序列化树实例
    13         context.Response.ContentType = "text/plain";
    14         context.Response.Write(responseString);
    15     }
    16     /// <summary>
    17     /// 根据ID获取子节点对象
    18     /// </summary>
    19     /// <param name="groupId"></param>
    20     /// <returns></returns>
    21     private static List<TreeEntity> GetTreeChildren(Int32 groupId) {
    22         List<GroupEntity> groupList = SqlDataHelper.GetUserGroupsById(groupId);
    23         List<TreeEntity> treeList = new List<TreeEntity>();
    24         if (groupList.Count < 1) {
    25             return null;
    26         }
    27         else {
    28             for (int i = 0; i < groupList.Count; i++) {
    29                 TreeEntity tree = new TreeEntity();
    30                 tree.id = groupList[i].GroupID.ToString();
    31                 tree.text = groupList[i].GroupName;
    32                 tree.children = GetTreeChildren(groupList[i].GroupID);
    33                 treeList.Add(tree);
    34             }
    35             return treeList;
    36         }
    37     }

     

  • 相关阅读:
    UISegmentedControl字体大小,颜色,选中颜色,左边椭圆,右边直线的Button 解决之iOS开发之分段控制器UISegmentedControl
    如何看待 Kotlin 成为 Android 官方支持开发语言?
    (腾讯视频)iOS开发之视频根据url获取第一帧图片,获取任一帧图片
    Swift 开源项目精选
    iOS数组排序 请求后,数组元素的排序 时间戳,最热,点赞数等
    iOS开发:UITableView的优化技巧-异步绘制Cell
    PHP 时间戳 转时间 for ios 8*3600
    mysql中子查询更新,得用别名表
    Java NIO系列教程(三) Buffer(转)
    深入理解ByteBuffer(转)
  • 原文地址:https://www.cnblogs.com/Mryjp/p/easyui_tree.html
Copyright © 2020-2023  润新知