本帖最后由 猪八戒 于 2012-5-23 01:16 编辑
我是用手风琴+树形控件当菜单,显示绑定显示都正常,就是在打开TAB页的时候不能同时打开同一级的菜单,就是好比我在第一个面板中打开树形菜单的第一项,在第二个面板中就打不开第二个树形面板菜单中的第一项。必须关闭第一个面板中打开树形菜单的第一项。才能打开第二个面板中第二个树形面板菜单中的第一项。这是怎么回事?
我是修改的实例中的那个default.js实现的,
代码如下:
<script type="text/javascript">
var IDS = {
mainTabStrip: '<%= mainTabStrip.ClientID %>'
};
</script>
function addExampleTab(node) {
var mainTabStrip = Ext.getCmp(IDS.mainTabStrip);
var href = node.attributes.href;
var tabId = 'dynamic_added_tab' + node.id.replace('__', '-');
var currentTab = mainTabStrip.getTab(tabId);
if (!currentTab) {
mainTabStrip.addTab({
'id': tabId,
'url': href,
'title': node.text,
'closable': true,
'bodyStyle': 'padding:0px;',
'iconCls': 'icon_' + href.replace(/[^.]+\./, '')
});
} else {
mainTabStrip.setActiveTab(currentTab);
}
}
这是 后台生成树的节点添加的node.OnClientClick = GetScriptById(tree.ClientID);的事件!
方法如下:
/// <summary>
/// 左侧导航js脚本
/// </summary>
/// <param name="treeid"></param>
/// <returns></returns>
private string GetScriptById(string treeid)
{
StringBuilder str = new StringBuilder();
str.AppendLine("var " + treeid + " = Ext.getCmp(\"" + treeid + "\");");
str.AppendLine(treeid + ".on('click', function (node, event) {");
str.AppendLine("if (node.isLeaf()) {");
str.AppendLine("event.stopEvent();");
str.AppendLine("var href = node.attributes.href;");
str.AppendLine("window.location.href = '#' + href;");
str.AppendLine("addExampleTab(node);");
str.AppendLine("}");
str.AppendLine("});");
return str.ToString();
}
希望知道的朋友进来帮我看看!我到底哪里出错了!
|