前几天一直在研究zTree 怎么实现异步加载,看了很多文章头也是蒙蒙的,现在自己来总结一下,在这里先解释一下所谓的异步加载。异步加载就是数据没有一次性全部加载出来,当用户点击父节点上的“+”号的时候zTree会自动再向后台发送一次请求,并且传递一个参数给后台。
首先我要说下ztree异步加载的数据格式,后台返回的数据必须要有id,name,isParent 这三个属性 id 就是节点id,name是节点名称 ,isParent 是否为父节点boolean型的,这三个缺一不可。
前台js中 这三个是必须的
async:{
enable:true,//是否为异步加载
autoParam:["id"],//异步加载 自动提交
url:basePath+'sysman/getPTimerNameTree'
},
这个 autoParam 在这里要说明一下,autoParam其实就是每次异步加载传到后台的参数,晚上很多autoParam:["id=tid"],这样的示例,一直不知道这个id跟tid到底什么意思什么关系,其实很简单,这个的意思就是,给id取个别名而已,如果直接 autoParam:["id"],后台接受的时候就是String id =request.getParameter("id");而如果用了后者后台就应该String id = request.getParameter("tid");就这么简单,之前我一直没明白。
后台接受到id以后再根据id来查下面的子节点,就这么简单。
数据库语句也很简单 select id,name ,isparent from table where pid=....