FineUI 官方论坛

标题: 一个关于手风琴+树形控件显示的问题! [打印本页]

作者: 猪八戒    时间: 2012-5-23 00:58
标题: 一个关于手风琴+树形控件显示的问题!
本帖最后由 猪八戒 于 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();
        }

希望知道的朋友进来帮我看看!我到底哪里出错了!


作者: Landroid    时间: 2012-5-23 08:53
实际不需要GetScriptById 这么多代码 ,一行代码搞定,用现成的
node.OnClientClick = mainTabStrip.GetAddTabReference( ...  );
作者: 猪八戒    时间: 2012-5-23 09:35
你那样如果刷新页面,会不会所有tab都会被关闭?
作者: 猪八戒    时间: 2012-5-23 10:41
Landroid 发表于 2012-5-23 08:53 实际不需要GetScriptById 这么多代码 ,一行代码搞定,用现成的 node.OnClientClick = mainTabStrip.GetAdd ...

老大,你那个方法不能刷新页面。你能帮我看看我的是哪里出错了?




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4