EasyUI中tree组件不显示数据或者显示undefined的解决方案
来源:互联网 发布:工地扬尘监测仪数据 编辑:程序博客网 时间:2024/06/07 09:51
这几天学习easyUI,用到了tree组件,蛋疼了N天,终于出来了,现在总结几个问题。
1、官方demo里,取的数据都是在.json文件里取的,在实际应用中显然不能这么做,要从数据库中取出,那么问题来了,怎么取?官方demo里也没有说明,在网上找半天也没找到什么结果,现做如下总结:
方法1:Ajax取,在web界面加载完成后调用ajax,从后台在数据库中取值,拼接成JSON,拼接的方法有很多,这里不一一列举,拼接完成后,用response的writer回写JSON,在js里,tree的data参数即为传回的JSON(时间原因,这个方法没有测试,理论可行)。
方法2:根方法一大同小异:以下是代码,一看便知:
tree的html代码:
<ul id="department_tree" class="easyui-tree"></ul>
tree的js代码:
/** * @argument 通过URL取tree中的数据 * @author ZHENGWEI * @date 2015-5-8 * @version 1.0 */$(document).ready(function(){/*加载完成时调用*/$("#department_tree").tree({/*JSON拼接的地址*/url:'CompanyStaffAction!listCompanyDepartment.action',/*连线*/lines:true,/*动画效果*/animate:true});})
其中URL中是后台传回JSON的action,代码如下
/** * 查询公司的部门信息 * @author ZHENGWEI * @throws JSONException * @throws IOException * @date 2015-5-7 */public String listCompanyDepartment() throws JSONException, IOException{//设置编码格式,防止中文乱码response.setCharacterEncoding("UTF-8");//返回公司部门信息List<CompanyDepartmentInfo> companyDepartmentInfoList = this.companyStaffService.listCompanyDepartment();//声明JSONArray对象,构建treeJSONArray jsonChildTreeArray = new JSONArray();//判空if(companyDepartmentInfoList.size() != 0){//循环迭代,生成JSONfor(CompanyDepartmentInfo companyDepartmentInfo:companyDepartmentInfoList){//声明JSON对象JSONObject jsonChildInfoObject = new JSONObject();//放入JSONjsonChildInfoObject.put("id", '"'+companyDepartmentInfo.getDepartmentId()+'"');jsonChildInfoObject.put("text", companyDepartmentInfo.getDepartmentName());//set进JSON数组jsonChildTreeArray.put(jsonChildInfoObject);}}//最终生成的JSON树JSONObject jsonDepartmentTree = new JSONObject();//树根jsonDepartmentTree.put("id", "0");jsonDepartmentTree.put("text", "公司部门分类");jsonDepartmentTree.put("state", "open");//将jsonChildTreeArray变成子节点jsonDepartmentTree.put("children", jsonChildTreeArray);//string型,将JSON加上'[]'String treeData = jsonDepartmentTree.toString();treeData = "["+treeData+"]";//声明PrintWriter变量传回JSONPrintWriter out = response.getWriter();out.write(treeData);return null;}
其中一定要注意的是,在做完JSON的封装后,一定要print一下,看看JSON外是不是有[]符号包裹,否则tree读不出数据!!!!
最终效果如下:
这个过程千辛万苦。。。说多了都是泪,网上好多问题都达不到点子上,我也是琢磨了好多天才想明白的,希望以后学习的同学少走弯路
1 0
- EasyUI中tree组件不显示数据或者显示undefined的解决方案
- easyui tree 显示数据
- Easyui-datagrid中不显示数据的可能原因
- easyui中datagrid显示数据的时候报Cannot read property 'length' of undefined
- EasyUI中,datagrid加载数据后只显示行号,不显示列标题的问题解决方法
- easyui datagrid数据不显示
- ext window中有tree不显示tree数据问题
- 解决方案:webview部分内容不显示的问题,或者无法跳转
- easyui 中Datagrid 控件在列较多且无数据时,列显示不全的解决方案
- easyui 中Datagrid 控件在列较多且无数据时,列显示不全的解决方案
- pydev在Elipse中使用第三方组件时,显示“Undefined variable from import:xxx()"的解决方案
- Android中Toast不显示的解决方案
- 解决easyui中datagrid列太多 无数据不显示滚动条的bug
- JDialog在模态下组件不显示的解决方案
- easyui datagrid数据显示不出来
- Android shape画虚线,不显示或者显示是实线的解决方案
- Android shape画虚线,不显示或者显示是实线的解决方案
- Android shape画虚线,不显示或者显示实线的解决方案
- 单身北漂生活二、三事(上)——北漂18年(8)
- Java学习笔记之 Flie方法(一)
- android面试题总结加强再加强版(一)
- 为了忘却的纪念,也为了纪念已经忘却的那些
- AFNnetworking快速教程,官方入门教程译
- EasyUI中tree组件不显示数据或者显示undefined的解决方案
- android面试题总结加强再加强版(二)
- DLL入口点函数DllMain
- android面试题总结加强再加强版(三)
- 关于在VC上搭建一个整体系统和应用的过程和心得
- 内部类
- android面试题总结加强再加强版(四)
- MyBatis启动报错Result Maps collection already contains ....
- android 手机调试程序时eclipse打印不出Log日志