FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3200|回复: 3
打印 上一主题 下一主题

一个关于手风琴+树形控件显示的问题!

[复制链接]
跳转到指定楼层
楼主
发表于 2012-5-23 00:58:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 猪八戒 于 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();
        }

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

沙发
发表于 2012-5-23 08:53:47 | 只看该作者
实际不需要GetScriptById 这么多代码 ,一行代码搞定,用现成的
node.OnClientClick = mainTabStrip.GetAddTabReference( ...  );
板凳
 楼主| 发表于 2012-5-23 09:35:14 | 只看该作者
你那样如果刷新页面,会不会所有tab都会被关闭?
地板
 楼主| 发表于 2012-5-23 10:41:20 来自手机 | 只看该作者
Landroid 发表于 2012-5-23 08:53 实际不需要GetScriptById 这么多代码 ,一行代码搞定,用现成的 node.OnClientClick = mainTabStrip.GetAdd ...

老大,你那个方法不能刷新页面。你能帮我看看我的是哪里出错了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-10-20 23:18 , Processed in 0.043320 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表