首页 新闻 会员 周边 捐助

如何.net(C#)下使用jstree

0
悬赏园豆:40 [已关闭问题] 关闭于 2014-01-18 21:04

最近在项目里用到了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 };
}
}
}
});

刷新后页面没任何反应,没见到目录树的影子,请问这有是什么原因呢,最好能给讲讲具体的例子,先谢过了

 
weegoood的主页 weegoood | 初学一级 | 园豆:5
提问于:2014-01-18 18:04
< >
分享
所有回答(3)
0

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  //双击事件
    }
};
秋壶冰月 | 园豆:5903 (大侠五级) | 2014-01-18 19:30
0

把json数据声明为数组即可

weegoood | 园豆:5 (初学一级) | 2014-01-18 21:03
0

请问有没有解决呢?遇到同样问题了

T_Sapi | 园豆:202 (菜鸟二级) | 2016-06-02 13:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册