最近在项目里用到了jstree(最新版本),但是遇到了一下几个问题:
问题1. 官网上给的使用JSON数据源的例子使用的是core插件,格式大致为
$('#using_json_2').jstree({ 'core' : {
'data' : [
{ "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
{ "id" : "ajson2", "parent" : "#", "text" : "Root node 2" },
{ "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
{ "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
]
} });
因为我已经用Ajax结合Webservice得到了json数据,例如
var strJson="[{ 'id': 1, 'parent': '#', 'text': '针灸推拿学原理' },
{ 'id': 102, 'parent': 1, 'text': '第二章 成人按摩推拿手法' },
{ 'id': 103, 'parent': 1, 'text': '第三章 儿科推拿手法' },
{ 'id': 10201, 'parent': 102, 'text': '第一节 总论' },
{ 'id': 10202, 'parent': 102, 'text': '第二节 放松类手法' },
{ 'id': 10203, 'parent': 102, 'text': '第三节 温通类手法' }]"
所以我在想能不能直接使用如下形式来生成目录树
$('#using_json_2').jstree({ 'core' : {
'data' : strJson
} });
结果发现不行,一直显示Loading,请问这是什么原因
问题2:官网的例子中,使用ajax的方式动态加载json数据,其中使用的是函数来获取json数据,如下
$('#tree').jstree({
'core' : {
'data' : {
'url' : function (node) {
return node.id === '#' ?
'ajax_roots.json' :
'ajax_children.json';
},
'data' : function (node) {
return { 'id' : node.id };
}
}
});
于是我在asp.net(C#)中使用如下代码
$('#demo2').jstree({
'core': {
'data': {
//GetKnowledgesByParentID是用于获取json数据的webservice方法
'url': 'WebServices/KnowledgeWebService.asmx/GetKnowledgesByParentID',
'data': function (node) {//提供给GetKnowledgesByParentID方法的参数,即当前节点id
return { 'id': node.id };
}
}
}
});
刷新后页面没任何反应,没见到目录树的影子,请问这有是什么原因呢,最好能给讲讲具体的例子,先谢过了
1、比如说分类表 categoryId、categoryName、categoryParentId,后台取出所有的分类信息,webform通过JavaScriptSerializer mvc通过Json(data,JsonRequestBehavior.AllowGet)转成json格式数据传递到前台
2.ztree还是看代码,主要是treeNodeKey和treeNodeParentKey
//zTree基本设置 var setting = { showLine: true, //是否显示节点间的连线 checkable: true, checkStyle: "radio", checkRadioType: "all", //async : true, //需要采用异步方式获取子节点数据,默认false //asyncUrl : url, //当 async = true 时,设置异步获取节点的 URL 地址 ,允许接收 function 的引用 //asyncParam : ["CategoryId"], //提交的与节点数据相关的必需参数 isSimpleData: true, //数据是否采用简单 Array 格式,默认false treeNodeKey: "CategoryId", //在isSimpleData格式下,当前节点id属性 treeNodeParentKey: "categoryParentId", //在isSimpleData格式下,当前节点的父节点id属性 nameCol: "Name", //在isSimpleData格式下,当前节点名称 expandSpeed: "fast", //设置 zTree节点展开、折叠时的动画速度或取消动画(三种默认定义:"slow", "normal", "fast")或 表示动画时长的毫秒数值(如:1000) checkType: { "Y": "ps", "N": "ps" }, callback: { //回调函数 dblclick: zTreeOnDblclick //双击事件 } };
把json数据声明为数组即可
请问有没有解决呢?遇到同样问题了