ExtJS中使用ztree 不显示树的解决办法
2014-12-01 10:50
183 查看
最近部门同事碰到一个问题,将ztree嵌入在套了几层Panel的面板中不会正常显示,但是将上层面板换成window就能正常显示,开始以为是所在的外部容器不管嵌套了几层,但是必须最底层是window容器,但是测试后发现不是这样的,然后又仔细的看了下代码,原来我的js文件是动态加载的,在这种情况下会有一个刷新先后顺序的问题,虽然执行了树的加载事件,但是在panel中没有任何显示,经过测试最终的成功解决办法是:
在panel中添加afterlayout事件,具体的代码如下:
var treepanel = new Ext.Panel({
width: 300,
region: 'west',
html: "<div id=\"pnlTree\" class=\"ztree\"></div>",
listeners: {
'afterlayout': function() {
initTree();
}
}
});
function initTree() {
zTree = $.fn.zTree.init($("#pnlTree"), setting, treeNodes);
var nodes = zTree.getNodes();
if (nodes.length > 0) {
zTree.expandNode(nodes[0], true, false, false);
}
}
需要注意的是treepanel中的id不能与div中的id重名,如果重名也不会正常显示树菜单,我们可以默认把treepanel中的id省略。
在panel中添加afterlayout事件,具体的代码如下:
var treepanel = new Ext.Panel({
width: 300,
region: 'west',
html: "<div id=\"pnlTree\" class=\"ztree\"></div>",
listeners: {
'afterlayout': function() {
initTree();
}
}
});
function initTree() {
zTree = $.fn.zTree.init($("#pnlTree"), setting, treeNodes);
var nodes = zTree.getNodes();
if (nodes.length > 0) {
zTree.expandNode(nodes[0], true, false, false);
}
}
需要注意的是treepanel中的id不能与div中的id重名,如果重名也不会正常显示树菜单,我们可以默认把treepanel中的id省略。
相关文章推荐
- ExtJS中使用ztree 不显示树的解决办法
- [EXTJs]TabPanel动态生成,加载组件时,组件不能正常显示的解决办法
- dede使用时遇到幻灯不显示解决办法
- 在网页加代码强制IE8使用兼容性视图解决网页显示不正确的办法
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 使用pppoeconf拨号后,Network Manager显示设备未托管的解决办法
- Extjs的Combobox 在card布局不宽度不能正常显示的解决办法
- Visual Studio 2008 Beta2 起始页中 不显示(Recent Projects)最近使用的项目问题,解决办法。
- mysql中的表显示“使用中”解决办法!
- mysql中的表显示“使用中”解决办法!
- [转贴]不能显示树型或树控件使用不正常的解决办法
- Adobe Acrobat 高亮工具使用后无法显示文字Bug解决办法
- Visual Studio 2008 起始页中 不显示(Recent Projects)最近使用的项目问题,解决办法。
- 在网页加代码强制IE8使用兼容性视图解决网页显示不正确的办法
- 使用SQL查询分析器查询显示最大只有256个字符的解决办法
- 无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试的解决办法
- Adobe Acrobat 高亮工具使用后无法显示文字Bug解决办法
- 不能显示树型或树控件使用不正常的解决办法
- ExtJs TreePanel使用TreeLoader在IE下无法正常加载显示的解决方法
- 使用pppoeconf拨号后,Network Manager显示设备未托管的解决办法