一个ext的多选树tree,首次加载的时候只把root下的第一层节点展现出来
当选择这一层节点的某个节点时,此节点自动展开刷新,load此节点的子节点并自动选中、
之后使用js去取所有选中的节点load是执行后台查询数据库,ajax方法....
可ajax方法是异步处理的,后台数据还没load完,取所有选中节点的方法已经执行了...
所以我只能取到最开始加载的那个节点...
悲剧啊...
注意红色的那句话...效率问题哈,然后再请各位大大大大大大大大 哥 and 姐们帮帮忙 给点意见
比如我可不可以做同步,有什么好的办法setTimeout已经试过了,无效...
当选择这一层节点的某个节点时,此节点自动展开刷新,load此节点的子节点并自动选中、
之后使用js去取所有选中的节点load是执行后台查询数据库,ajax方法....
可ajax方法是异步处理的,后台数据还没load完,取所有选中节点的方法已经执行了...
所以我只能取到最开始加载的那个节点...
悲剧啊...
注意红色的那句话...效率问题哈,然后再请各位大大大大大大大大 哥 and 姐们帮帮忙 给点意见
比如我可不可以做同步,有什么好的办法setTimeout已经试过了,无效...
解决方案 »
- 求XSL写法,急!!!
- 点击显示图层
- 怪异的cookie传值
- 求越狱第四季第12集在线观看地址
- Javascript DOM初级问题
- 如何利用javascript中函数清除document文档中所有内容
- 如何实现两个select框里的option内容相互迁移
- 阿里巴巴的Js添加Cookies,搞不定了!
- 请问如何将http://www.kacan.com.cn/ 中的最新动态中的效果用javascript从一个.inc文件中读取来,达到同样的效果。文件内容如下:
- 请高手指点货币类型的验证
- javascript值类型与引用类型
- 在网上搜了一个javascript做的日历但代码看不懂,望各位高手解释一下,谢谢!!
但是这样的话效率是个很严重的问题
后台我不知道用什么办法去定义节点间的层次关系...所以目前只能取一层
方法如下:public string NodeLoad(string nodeID, string checkFlg)
{
if (nodeID == "root" | string.IsNullOrEmpty(nodeID))
{
nodeID = Guid.Empty.ToString();
}
Search infoSearch = new Search(typeof(CatelogInfo));
infoSearch.AddItem("ParentID", nodeID, SearchOperator.Equal);
List<CatelogInfo> lstCatelog = _bllCatelog.Search(infoSearch); Coolite.Ext.Web.TreeNodeCollection nodes = new Coolite.Ext.Web.TreeNodeCollection(); foreach (CatelogInfo info in lstCatelog)
{
AsyncTreeNode asyncNode = new AsyncTreeNode();
asyncNode.NodeID = info.ID.ToString();
asyncNode.Text = info.Name;
if (bool.TrueString.ToLower().Equals(checkFlg))
{
asyncNode.Checked = ThreeStateBool.True;
}
else
{
asyncNode.Checked = ThreeStateBool.False;
}
nodes.Add(asyncNode);
}
return nodes.ToJson();
}
<ext:PageTreeLoader RequestMethod="GET" PreloadChildren="true">
<EventMask ShowMask="true" Target="Parent" Msg="正在加载数据,请等待..." />
</ext:PageTreeLoader>
</Loader>
我在页面时这么进行加载的,请问 gdfloyd ,像你说的写load事件该怎么做呢?