var setting = {
async:{
autoParam:["id=tid"],
contentType:"application/x-www-form-urlencoded",
enable:true,
type:"post",
url:"/deployment/devAndSysAction!synAddDevice.action"
}
,data:{
simpleData :{
enable:true
}
}
};
async就是对异步的配置,autoParam是自动提交的参数,这里要说下后面的tid才是我们在后台接受的参数名,enable就是控制异步加载是否生效,其他的都没什么说的了。
然后后台我们接值组织数据,我这里用的是伪码。
String id = request.getParameter("tid");
treeStr = "";
List lstMyObj = myService.findMyData(parentId);
if(lstMyObj!=null){
for(int i=0,len=lstMyObj.size();i
treeStr += "{id:'myId',pId:'parentId',name:'myname' ,isParent:true},";
}
}
treeStr = "["+treeStr.substring(0,treeStr.length()-1)+"]";
这里ajax返回treeStr
这样的话就OK了,这里有一个地方得十分注意就是isParent这个属性,在异步加载中一定要知道这个节点下面是否有子节点,如果有就设置成true,如果没有就设置成false,如果不设置的话就默认是false,那么即使你本次异步加载出的节点有子节点的话,它也不会在节点前加上个小+号,那你就无法进行异步加载了,而如果都设置成true的话,你点击没有子节点的节点前的+就会出现这种情况
,有显示上的问题。所以这个isParent的正确设置很重要。