今天使用了下kendoUI中的TreeView控件,一开始的时候总是不成功,

总是会报 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined,

后来查询相关的API,原来TreeView是比较特殊的控件,不能绑定kendo.data.DataSource数据源,

数据源必须是kendo.data.HierarchicalDataSource类型的数据源,

将数据源改为该类型的以后,任然报错,而且是奇怪的错误提示。。。

Uncaught TypeError: e.slice is not a function

使我又郁闷了半天,经由同事的提醒,我突然发现树的数据可能有问题,

代码如下:

     /**
* 获取文档设置信息(树)
*/
@RequestMapping("/getDocSettingsTree")
@ResponseBody
public String getDocSettingsTree(HttpSession session,HttpServletRequest request) {
try{
Settings rootSettings = new Settings();
rootSettings.setSettingId("-1");
rootSettings.setSettingName("文档分类");
rootSettings.setSettingType("2");
getSubSettings(rootSettings);
String settingList = JsonMapper.alwaysMapper().toJson(rootSettings);
return settingList; }catch(Exception e){
return "查询出错!";
}
}

这里的根节点是单个对象,必须在包装成LIST才行,

于是修改代码为:

    /**
* 获取文档设置信息(树)
*/
@RequestMapping("/getDocSettingsTree")
@ResponseBody
public String getDocSettingsTree(HttpSession session,HttpServletRequest request) {
try{
Settings rootSettings = new Settings();
rootSettings.setSettingId("-1");
rootSettings.setSettingName("文档分类");
rootSettings.setSettingType("2");
getSubSettings(rootSettings);
//必须包装成LIST回传
List<Settings> listSettings = new ArrayList<Settings>();
listSettings.add(rootSettings);
String settingList = JsonMapper.alwaysMapper().toJson(listSettings);

return settingList; }catch(Exception e){
return "查询出错!";
}
}

这样问题便解决了

JS代码:

 function initTree(){

     $.ajax({
type: "POST",
async: true,
url: ctx + "/Settings/getDocSettingsTree",
dataType: "json",
success: function(data){ var dataSource = new kendo.data.HierarchicalDataSource({
data: data,
schema: {
model: {
id: "settingId",
settingType: "settingType",
children: "subSettings"
}
}
});
$("#docTree").kendoTreeView({
dataSource: dataSource,
dataValueField: "id",
dataTextField: "settingName"
}); $("#docTree").data("kendoTreeView").expand(".k-item");
}
});
}

这里的重点就是数据源的格式必须是kendo.data.HierarchicalDataSource

并且数据是LIST形式的。

kendoTreeView,需要注意的地方的更多相关文章

  1. 解决VS2008在win7找不到输入序列号的地方

    1.VS2008在Windows7 打开维护界面看不到可以输序列号的地方. 因为微软把他隐藏了. 2.我们可以借用工具把他显示出来 下载地址:http://www.zlsoft.com/techbbs ...

  2. 使用Google Closure Compiler高级压缩Javascript代码注意的几个地方

    介绍 GCC(Google Closure Compiler)是由谷歌发布的Js代码压缩编译工具.它可以做到分析Js的代码,移除不需要的代码(dead code),并且去重写它,最后再进行压缩. 三种 ...

  3. eclipse项目上面有个红叉,但是没有任何地方有错误

    eclipse项目上面有个红叉,但是没有任何地方有错误,clear,refresh,重启都试过了,依然没用, 后来我换了一个workspace,编译的时候提示: Description Resourc ...

  4. javascript中的一些核心知识点以及需要注意的地方

    前言 近期杂事甚多,这些事情的积累对知识体系的提升有好处,但是却不能整理出来,也整理不出来 比如说我最近研究的Hybrid在线联调方案便过于依赖于业务,就算分享也不会有人读懂,若是抽一点来分享又意义不 ...

  5. android 实现点击listview 空白地方隐藏菜单

    思路:重写ListView的setOnTouchListener事件: ListView.setOnTouchListener(new OnTouchListener(){ @Override pub ...

  6. java 将一张图片拷贝到另外一个地方。(IO流)

    package com.beiwo.inputstream; import java.io.FileInputStream; import java.io.FileOutputStream; impo ...

  7. 屌丝程序员的梦想 (二) 屌丝IT梦开始地方

    校区的周围有很多的网吧,一个对电子游戏迷恋了许久的青少年来说,那绝对是不可不去的地方,键盘,鼠标,显示器,那一切看起来都那么完美,那么似曾相识,是啊,魂牵梦绕的IT梦...哦..当时那只是电子游戏梦. ...

  8. es6还欠完善的地方

    const的可变性 const用于声明常量. 什么是常量,声明后的值不可更改. 对于值类型,比如string,number等等.const声明确实有效. const str = "strin ...

  9. js平滑滚动到顶部,底部,指定地方

    [原文链接] 采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquery中的animate,实现滚动的一个动作,慢慢的滚动到你想跳转到的位置,从而看起来会非常高大上. [示例演示 ...

随机推荐

  1. ElasticSearch优化配置

    ################################################################### /etc/elasticsearch/elasticsearch ...

  2. AJAX怎么用POST 传参数

    //注册回调函数.注意注册回调函数是不能加括号,加了会把函数的值返回给onreadystatechange xmlhttp.onreadystatechange = callback; //设置连接信 ...

  3. List Arraylist 数组的区别

    数组.List和ArrayList的区别 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如: ]; //赋值 s[]=]=]="c"; //修 ...

  4. 考虑virtual函数以外的选择

    在C++中,有四种选择可以替代virtual函数的功能: 1.non-virtual interface(NVI)手法,这是一种template method模式.它以public non-virtu ...

  5. go 版本 gRPC 环境搭建(3.0正式版)

    之前装过 gRPC 的各个测试版本,有些残余的文件,正式版的安装和之前残留的清除整理如下:   安装 go 版本的 gRPC go 的安装略过.需要 go 1.5 以上版本. $ go version ...

  6. 第二周:If判断语句程序当中的作用简介

    1.If语句的作用: 在我们编写程序时经常会遇到内容判断的问题,比如判断内容的真假或者值的大小分别输出内容的问题 这时就会用到我们的If判断语句了,顾名思义,if在英文单词中意思为如果,在Java中他 ...

  7. jQuery MiniUI开发系列之:创建组件对象

    jQuery MiniUI可以使用Javascript和Html两种方式来创建对象. 1)Javascript创建对象 使用JavaScript创建对象,是最基本的方式,有如下几个要点: 1)使用ne ...

  8. IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)

    在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...

  9. oracle安装不容易啊

    oracle 配置方面,电脑端使用的是ORALE 10G 64位,PLSQL DEVELOPER使用32位,ORACLE CLIENT使用11.5版本.之前一直因为ORACLE 使用32位,导致在电脑 ...

  10. 哆啦A梦 canvas

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...