自己下个api来看不就行了。。easyui api

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>TreeGrid - jQuery EasyUI Demo</title>
    <link rel="stylesheet" type="text/css" href="../themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../themes/icon.css">
    <link rel="stylesheet" type="text/css" href="demo.css">
    <script type="text/javascript" src="../jquery-1.6.min.js"></script>
    <script type="text/javascript" src="../jquery.easyui.min.js"></script>
    <script>
    $(function(){
    $('#test').treegrid({
    title:'TreeGrid',
    iconCls:'icon-save',
    width:700,
    height:350,
    nowrap: false,
    rownumbers: true,
    animate:true,
    collapsible:true,
    url:'treegrid_data.json',
    idField:'code',
    treeField:'code',

    frozenColumns:[[
                    {title:'Code',field:'code',width:200,
                    formatter:function(value){
                     return '<span style="color:red">'+value+'</span>';
                    }
                    }
    ]],
    columns:[[
    {field:'name',title:'Name',width:150},
    {field:'addr',title:'Address',width:220,rowspan:2},
    {field:'col4',title:'Col41',width:150,rowspan:2}
    ]],
    onBeforeLoad:function(row,param){
    if (row){
    $(this).treegrid('options').url = 'treegrid_subdata.json';
    } else {
    $(this).treegrid('options').url = 'treegrid_data.json';
    }
    },
    onContextMenu: function(e,row){
    e.preventDefault();
    $(this).treegrid('unselectAll');
    $(this).treegrid('select', row.code);
    $('#mm').menu('show', {
    left: e.pageX,
    top: e.pageY
    });
    }
    });
    }); function reload(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    $('#test').treegrid('reload', node.code);
    } else {
    $('#test').treegrid('reload');
    }
    }
    function getChildren(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    var nodes = $('#test').treegrid('getChildren', node.code);
    } else {
    var nodes = $('#test').treegrid('getChildren');
    }
    var s = '';
    for(var i=0; i<nodes.length; i++){
    s += nodes[i].code + ',';
    }
    alert(s);
    }
    function getSelected(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    alert(node.code+":"+node.name);
    }
    }
    function collapse(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    $('#test').treegrid('collapse', node.code);
    }
    }
    function expand(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    $('#test').treegrid('expand', node.code);
    }
    }
    function collapseAll(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    $('#test').treegrid('collapseAll', node.code);
    } else {
    $('#test').treegrid('collapseAll');
    }
    }
    function expandAll(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    $('#test').treegrid('expandAll', node.code);
    } else {
    $('#test').treegrid('expandAll');
    }
    }
    function expandTo(){
    $('#test').treegrid('expandTo', '02013');
    $('#test').treegrid('select', '02013');
    }
    var codeIndex = 1000;
    function append(){
    codeIndex++;
    var data = [{
    code: 'code'+codeIndex,
    name: 'name'+codeIndex,
    addr: 'address'+codeIndex,
    col4: 'col4 data'
    }];
    var node = $('#test').treegrid('getSelected');
    $('#test').treegrid('append', {
    parent: (node?node.code:null),
    data: data
    });
    }
    function remove(){
    var node = $('#test').treegrid('getSelected');
    if (node){
    $('#test').treegrid('remove', node.code);
    }
    }
    </script>
    </head>
    <body>
    <h2>TreeGrid</h2>
    <div class="demo-info">
    <div class="demo-tip icon-tip"></div>
    <div>Combines treeview and datagrid to represent hierarchical data.</div>
    </div>

    <div style="margin:10px 0;">
    <a href="#" onclick="reload()">Reload</a>
    <a href="#" onclick="getChildren()">GetChildren</a>
    <a href="#" onclick="getSelected()">GetSelected</a>
    <a href="#" onclick="collapse()">Collapse</a>
    <a href="#" onclick="expand()">Expand</a>
    <a href="#" onclick="collapseAll()">CollapseAll</a>
    <a href="#" onclick="expandAll()">ExpandAll</a>
    <a href="#" onclick="expandTo()">ExpandTo</a>
    <a href="#" onclick="append()">Append</a>
    </div>

    <table id="test"></table>

    <div id="mm" class="easyui-menu" style="width:120px;">
    <div onclick="append()">Append</div>
    <div onclick="remove()">Remove</div>
    </div>
    </body>
    </html>官方API
      

  2.   

    [{
    "id":1,
    "code":"01",
    "name":"name1",
    "addr":"address1",
    "col4":"col4 data",
    "iconCls":"icon-ok",
    "children":[{
    "id":2,
    "code":"0101",
    "name":"name11",
    "addr":"address11",
    "checked":true
    },{
    "id":3,
    "code":"0102",
    "name":"name12",
    "addr":"address12",
    "state":"closed"
    }]
    },{
    "code":"02",
    "name":"Languages abc",
    "addr":"address2",
    "col4":"col4 data",
    "state":"closed",
    "children":[{
    "code":"0201",
    "name":"Java",
    "col4":"col4 data",
    "state":"closed",
    "children":[{
    "code":"02013",
    "name":"jdk1"
    },{
    "code":"02014",
    "name":"jdk2"
    }]
    },{
    "code":"0202",
    "name":"C#",
    "col4":"col4 data"
    }]
    }]
    楼上说的返回的JSON格式,为什么没用row的存在呢
      

  3.   

    先用ArrayList 动态添加,再用HashTable .add("rows",arrayList)
      

  4.   

    using System;
    using System.Web;
    using YX.OA.BLL.Archive;
    using System.Web.SessionState;
    using YX.Security;
    using System.Text;
    using System.Data;namespace YX.OA.Archive.Archive.ArchiveSet.Class
    {
        /// <summary>
        /// LeftTreeJson 的摘要说明
        /// </summary>
        public class LeftTreeJson : IHttpHandler, IReadOnlySessionState
        {
            ClassBLL bll = new ClassBLL();
            UnitBLL ubll = new UnitBLL();
            public void ProcessRequest(HttpContext context)
            {
                UserInfo CurrentUserInfo = BasePage.GetUserInfo();
                if (CurrentUserInfo == null)
                {
                    context.Response.Write(YX.SSO.OATools.SecurityErr);
                    return;
                }
                string id = context.Request["id"];
                string id1 = id;
                if (id.Contains("★") || id.Contains("▲"))
                {
                    id1 = id.EndsWith("★").ToString();
                    id1 = id.EndsWith("▲").ToString();
                }
                string newsclassname = context.Server.UrlDecode(context.Request["FullName"]);
                StringBuilder sb = new StringBuilder();
                #region
                if (id == id1)
                {
                    DataSet ds = bll.GetParentClassByUnitId(id);
                    sb.Append("{\"total\":" + ds.Tables[0].Rows.Count + ",\"rows\":[");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            sb.Append("{\"id\":\"" + ds.Tables[0].Rows[i]["_ID"].ToString() + "★\"");
                            sb.Append(",\"_ID\":\"" + ds.Tables[0].Rows[i]["_ID"].ToString() + "\"");
                            sb.Append(",\"FullName\":\"" + ds.Tables[0].Rows[i]["FullName"].ToString() + "\"");
                            sb.Append(",\"Code\":\"" + ds.Tables[0].Rows[i]["Code"].ToString() + "\"");
                            sb.Append(",\"ShowOrder\":\"" + ds.Tables[0].Rows[i]["ShowOrder"].ToString() + "\"");
                            sb.Append(",\"ParentID\":\"" + ds.Tables[0].Rows[i]["ParentID"].ToString() + "\"");
                            DataSet dt = bll.GetChildrenClassByParentId(ds.Tables[0].Rows[i]["_ID"].ToString());
                            if (dt.Tables[0].Rows.Count > 0)
                            {
                                sb.Append(",\"state\":\"closed\"");
                            }
                            else
                            {
                                sb.Append(",\"state\":\"open\"");
                            }
                            sb.Append("},");
                        }
                        sb = sb.Remove(sb.Length - 1, 1);
                        sb.Append("]");
                    }
                    else
                    {
                        sb.Append("]");
                    }
                    sb.Append("}");
                    context.Response.Write(sb.ToString());//向前台输出字符串
                }
                #endregion
                #region
                if (id.EndsWith("★"))
                {
                    string parentid = id.TrimEnd('★');
                    DataSet ds = bll.GetChildrenClassByParentId(parentid);
                    sb.Append("[");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            string[] arry = ds.Tables[0].Rows[i]["parentid"].ToString().Split(',');
                            string s = ds.Tables[0].Rows[i]["_ID"].ToString();
                            sb.Append("{\"id\":\"" + ds.Tables[0].Rows[i]["_ID"].ToString() + "▲\"");
                            sb.Append(",\"_ID\":\"" + ds.Tables[0].Rows[i]["_ID"].ToString() + "\"");
                            sb.Append(",\"FullName\":\"" + ds.Tables[0].Rows[i]["FullName"].ToString() + "\"");
                            sb.Append(",\"ParentID\":\"" + ds.Tables[0].Rows[i]["ParentID"].ToString() + "\"");
                            sb.Append(",\"Code\":\"" + ds.Tables[0].Rows[i]["Code"].ToString() + "\"");
                            sb.Append(",\"ShowOrder\":\"" + ds.Tables[0].Rows[i]["ShowOrder"].ToString() + "\"");
                            //sb.Append(",\"newsclassname_en\":\"" + ds.Tables[0].Rows[i]["newsclassname_en"].ToString() + "\"");
                            for (int j = 0; j < arry.Length; j++)
                            {
                                if (arry[j].Contains(":"))
                                {
                                    sb.Append(",\"" + arry[j].Split(':')[0] + "\":\"" + arry[j].Split(':')[1] + "\"");
                                }
                                else
                                {
                                    sb.Append(",\"" + arry[j] + "\":\"\"");
                                }
                            }
                            sb.Append("},");
                        }
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append(Environment.NewLine);
                    sb.Append("]");
                    context.Response.Write(sb.ToString());//向前台输出字符串
                }
                #endregion
                #region
                //else
                if (id.EndsWith("▲"))
                {
                    string parentid = id.TrimEnd('▲');
                    DataSet ds = bll.GetChildrenClassByParentId(parentid);
                    sb.Append("[");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            string[] arry = ds.Tables[0].Rows[i]["parentid"].ToString().Split(',');
                            sb.Append("{\"id\":\"" + ds.Tables[0].Rows[i]["_ID"].ToString() + "\"");
                            sb.Append(",\"_ID\":\"" + ds.Tables[0].Rows[i]["_ID"].ToString() + "\"");
                            sb.Append(",\"FullName\":\"" + ds.Tables[0].Rows[i]["FullName"].ToString() + "\"");
                            sb.Append(",\"parentid\":\"" + ds.Tables[0].Rows[i]["parentid"].ToString() + "\"");
                            //sb.Append(",\"newsclassname_en\":\"" + ds.Tables[0].Rows[i]["newsclassname_en"].ToString() + "\"");
                            sb.Append(",\"state\":\"open\"");
                            for (int j = 0; j < arry.Length; j++)
                            {
                                if (arry[j].Contains(":"))
                                {
                                    sb.Append(",\"" + arry[j].Split(':')[0] + "\":\"" + arry[j].Split(':')[1] + "\"");
                                }
                                else
                                {
                                    sb.Append(",\"" + arry[j] + "\":\"\"");
                                }
                            }
                            sb.Append("},");
                        }
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append(Environment.NewLine);
                    sb.Append("]");
                    context.Response.Write(sb.ToString());//向前台输出字符串
                }
                #endregion
            }        public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
      

  5.   

    treegrid 从后台加载完数据之后,点击节点、折叠的时候会出现有空白的一行,我是用table的(之后更换了版本还是一样),有大神遇到这样的问题吗?