★★★会用Coolite的进,求教★★★

jy02534047 2010-09-28 11:08:36
请问,我现在有两个页面,

通过单击一个menu里对应的项,可以分别进入这两个页面(window.open),页面中都分别有一个treepanel,然后在页面里可以实现对treepanel节点的增删改操作,增删改后都是无刷新,直接可以看到操作后树的改动,具体实现代码是网上找的,即在增删改后调用一个JS函数:
<script type= "text/javascript">
function refreshTree(tree)
{
Coolite.AjaxMethods.RefreshMenu({
success: function(result)
{
var nodes = eval(result);
tree.root.ui.remove();
tree.initChildren(nodes);
tree.root.render();
}
});
}
</script>

但是现在遇到个问题,比如我增删改后,再次进入该页面(window.open),或者进入其他页面后再返回该页面,树又变回去了(实际上增删改操作已经成功,只是又变回了操作前的样子),必须刷新一次(location.reload()),才能变回增删改操作后的效果,请问这是怎么回事?
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jy02534047 2010-09-28
  • 打赏
  • 举报
回复
自己解决了……
进入页面时用的是window.open
现在我换成了location.href,就可以了,每次进入页面时都从新加载了一次。

求原因……这俩有啥区别
jy02534047 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 flyerwing 的回复:]
必须刷新一次(location.reload()),才能变回增删改操作后的效果,请问这是怎么回事?
以前请求一次显示了数据,然后你根据数据编号请求然后删除了数据,然后就是当前显示列表并无更新所以老的数据依然在,所以显示没变,
其实要么手动删除已经再服务器的数据要么刷新以下数据就OK.
既:if(xxx.store.getAt(i).data.Id==Id)xxx.store.remove(x……
[/Quote]

"然后就是当前显示列表并无更新所以老的数据依然在,所以显示没变,"

当前显示列表有更新啊,显示了更改后的效果,只是页面没有刷新而已
还有你给的代码,能稍微解释一下吗
flyerwing 2010-09-28
  • 打赏
  • 举报
回复
必须刷新一次(location.reload()),才能变回增删改操作后的效果,请问这是怎么回事?
以前请求一次显示了数据,然后你根据数据编号请求然后删除了数据,然后就是当前显示列表并无更新所以老的数据依然在,所以显示没变,
其实要么手动删除已经再服务器的数据要么刷新以下数据就OK.
既:if(xxx.store.getAt(i).data.Id==Id)xxx.store.remove(xxx.store.getAt(i));
或者
xxx.store.reload();
jy02534047 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
这是页面无刷新导致的
后退回前一个页面没有刷新 所以还是老数据
[/Quote]

那怎么解决?现在想要的就是那种无刷新的效果啊~~~
q107770540 2010-09-28
  • 打赏
  • 举报
回复
这是页面无刷新导致的
后退回前一个页面没有刷新 所以还是老数据

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧