网站上有一个关于如何从自定义数据构建子节点的示例:
$("#tree").dynatree({
[…]
onLazyRead: function(node){
$.ajax({
url: […],
success: function(data, textStatus){
// In this sample we assume that the server returns JSON like
// { "status": "...", "result": [ {...}, {...}, ...]}
if(data.status == "ok"){
// Convert the response to a native Dynatree JavaScipt object.
var list = data.result;
res = [];
for(var i=0, l=list.length; i<l; i++){
var e = list[i];
res.push({title: "" + i + ": " + e.fcurr + "-" + e.tcurr + ":" + e.ukurs,
icon: false});
}
// PWS status OK
node.setLazyNodeStatus(DTNodeStatus_Ok);
node.addChild(res);
}else{
// Server returned an error condition: set node status accordingly
node.setLazyNodeStatus(DTNodeStatus_Error, {
tooltip: data.faultDetails,
info: data.faultString
});
}
}
});
[…]
});
但是没有提到如何为树的初始化做这件事。我尝试了以下方法:
initAjax: {
type: "POST",
url: "/doSomething",
data: ...
contentType: "application/json; charset=utf-8"
success: function(data, textStatus){
// In this sample we assume that the server returns JSON like
// { "status": "...", "result": [ {...}, {...}, ...]}
if(data.status == "ok"){
// Convert the response to a native Dynatree JavaScipt object.
var list = data.result;
res = [];
for(var i=0, l=list.length; i<l; i++){
var e = list[i];
res.push({title: "" + i + ": " + e.fcurr + "-" + e.tcurr + ":" + e.ukurs,
icon: false});
}
// PWS status OK
node.setLazyNodeStatus(DTNodeStatus_Ok);
node.addChild(res);
}else{
// Server returned an error condition: set node status accordingly
node.setLazyNodeStatus(DTNodeStatus_Error, {
tooltip: data.faultDetails,
info: data.faultString
});
}
}
},
但是我得到一个错误,说成功不起作用并使用其他方法,但是没有关于如何使用其他方法的文档?有人可以帮我从这里出去吗?我尝试使用dataFilter过滤掉我正在返回的json字符串,但这不起作用;我尝试使用onPostInit和postProcess,但由于没有文档,因此不知道该怎么做:重新格式化后我是否返回数据字符串,是否返回数据的json版本?我只做数据=格式(数据)?
非常感谢任何帮助。
我将拥有大量的状态代码,需要根据代码执行不同的操作;例如,如果我有代码1,这意味着我需要更改节点的类以具有红色文本;或者,如果我返回代码2,则表示存在内部错误,我需要将其添加到节点文本中;等