日期:2014-05-16  浏览次数:20413 次

Jquery-easyUI treegrid 异步加载问题
JS代码:
JScript code

$(function() {

        var lastIndex=0;

        $('#listTable').treegrid({
            title:'菜单编辑',
            width:500,
            height:300,
            rownumbers: true,
            collapsible:true,
            url:'${path}/sys/listChildrenMenusDetailAjax',
            idField:'menuId',
            treeField:'menuId',
            pagination : true,
            pageSize : 10,
            onLoadSuccess:function(data){
                alert(data);
            },
            columns:[[
                {field:'menuId',title:'菜单ID',width:160},
                {field:'menuName',title:'菜单名称',width:80,align:'right'},
                {field:'menuUrl',title:'菜单URL',width:100}
            ]]
        });
    });



java代码:
Java code
@Action(value = "listChildrenMenusDetailAjax")
    public void listChildrenMenusDetailAjax() {
        setChannel(ACTION_TYPE.ADMIN);
        PrintWriter out;
        try {
            response.setContentType("text/html;charset=GBK");  
            response.setCharacterEncoding("GBK");
            out = response.getWriter();
            MenuExample menuExample = new MenuExample();
            System.out.println();
            //menuExample.setRowStartNum((page - 1) * rows);
            //menuExample.setRowEndNum((page) * rows);
            menuExample.setOrderByClause("MENU_ID");
            List<Menu> allMenus= menuService.findMenuByExample(menuExample);
            System.out.println(allMenus);
            Map<String, Object> outJson = new HashMap<String, Object>();
            total =menuService.countByExample(new MenuExample());
            outJson.put("total", total);
            outJson.put("rows", allMenus);
            JSONObject  jSONObject = JSONObject.fromObject(outJson);
            logger.debug(jSONObject.toString());
            out.write(jSONObject.toString());
        } catch (IOException e) {
            logger.warn("查询菜单字列表错误!",e);
        }
    }


onLoadSuccess里面的data是null
URL肯定没有错 因为换成datagrid是可以加载数据的,
Java code
logger.debug(jSONObject.toString());
这里也可以正确的输出。但是treegrid就是不行。
这里的写法是不是有问题?正确的写法是什么呢?

------解决方案--------------------
会了教我
------解决方案--------------------
struts2可以直接return json,不用自己写write的。
LZ的这种方式,我没在struts2试过。
------解决方案--------------------
这个是 json的格式
JScript code

[{
    "id":1,
    "text":"Folder1",
    "iconCls":"icon-ok"
},{
    "text":"Languages",
    "state":"closed",
    "children":[{
        "id":"j1",
        "text":"Java"
    },{
        "id":"j2",
        "text":"C#"
    }]
}]