easyui tree refresh 问题

采用easyui实现树的异步加载,效果如图:这个时候调用$("treeData").tree('reload');方法,刷新结果和上图一样,但是展开一个节点后,在调用这个... 采用easyui实现树的异步加载,效果如图:

这个时候调用$("treeData").tree('reload');方法,刷新结果和上图一样,但是展开一个节点后,在调用这个方法,刷新的结果就只显示展开后的子节点,而不显示展开前存在的节点。比如展开管理员节点,效果如下:

这个时候调用reload方法,就只显示管理员的子节点,如下:

而本来要的想只展示根节点的效果没有出现
展开
 我来答
jwtblack7
推荐于2017-11-06 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:104万
展开全部

假设你的tree定义的时候的url是"urlA",在onBeforeExpand的时候是"urlB",那么reload这个tree的代码是这样的:

function treeReload(){
    $("#tt").tree("options").url="urlA";
    $("#tt").tree("reload");
}

举例:
假如自定义的tree是这样的:

<ul id="tt" class="easyui-tree" data-options="
    url:"urlA",
    onBeforeExpand:function(node){
        $('#tt').tree('options').url="urlB";    //展开时发送请求去加载节点
    }"></ul>
    
那么调用treeReload()方法就可以刷新这个tree了。其实就是把tree的加载子节点的url给赋值成根节点的url,然后reload。
于融捷雁卉
2020-01-05 · TA获得超过3726个赞
知道大有可为答主
回答量:3215
采纳率:33%
帮助的人:190万
展开全部
假设你的tree定义的时候的url是"urlA",在onBeforeExpand的时候是"urlB",那么reload这个tree的代码是这样的:
123456789101112131415function treeReload(){ $("#tt").tree("options").url="urlA"; $("#tt").tree("reload");} 举例:假如自定义的tree是这样的: <ul id="tt" class="easyui-tree" data-options=" url:"urlA", onBeforeExpand:function(node){ $('#tt').tree('options').url="urlB"; //展开时发送请求去加载节点 }"></ul> 那么调用treeReload()方法就可以刷新这个tree了。其实就是把tree的加载子节点的url给赋值成根节点的url,然后reload。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长城zgz
2017-11-06
知道答主
回答量:1
采纳率:0%
帮助的人:932
展开全部

展开节点之前记录节点,关闭删除记录的节点,reload之后就遍历得到的节点信息,然后通过expand方法展开节点。

onLoadSuccess:function()
{
var list=[];
for(var j=0;j<expnode.length;j++){
list.push(expnode[j])
}
$("#easytree").tree("collapseAll");
for(var i=0;i<list.length;i++){
var node = $('#easytree').tree('find', list[i]);
$('#easytree').tree('expand', node.target);
}
},
onBeforeExpand:function(node){
expnode.push(node.id.toString());
},
onBeforeCollapse:function (node) {
var i=expnode.indexOf(node.id.toString());
if(i>=0){
expnode.splice(i,1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友58fd71151
2014-05-11 · TA获得超过391个赞
知道小有建树答主
回答量:442
采纳率:100%
帮助的人:139万
展开全部
你是不是load整棵tree了,而且刷的是根节点
追问
我想要的结果是load整棵树,load根节点。但是使用逐级加载,调用reload,加载的是最新展开那一级子节点。
追答
$("treeData").tree('reload');是在哪里调用的,应该加个target参数吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luole_1992
2014-05-26 · TA获得超过126个赞
知道答主
回答量:63
采纳率:0%
帮助的人:25.7万
展开全部
哥们解决没?
追问
指定target,确实可以实现刷新那个节点下的子节点。但是如果刷新的是一级节点,这些节点没有上级节点,这个时候的target怎么指定。
追答
试试看他的parent
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式