FineUI 官方论坛

标题: 如何调用default.js中addExampleTab(node)方法 [打印本页]

作者: 世界没有真情    时间: 2013-10-1 17:52
标题: 如何调用default.js中addExampleTab(node)方法
本帖最后由 世界没有真情 于 2013-10-1 17:57 编辑

  1. <P> /// <summary>
  2.         /// 左侧导航js脚本
  3.         /// </summary>
  4.         /// <param name="treeid"></param>
  5.         /// <returns></returns>
  6.         private string GetScriptById(string treeid)
  7.         {
  8.             StringBuilder str = new StringBuilder();
  9.             str.AppendLine("var " + treeid + " = Ext.getCmp("" + treeid + "");");
  10.             str.AppendLine(treeid + ".on('click', function (node, event) {");
  11.             str.AppendLine("if (node.isLeaf()) {");
  12.             str.AppendLine("event.stopEvent();");
  13.             str.AppendLine("var href = node.attributes.href;");
  14.             str.AppendLine("window.location.href = '#' + href;");
  15.             str.AppendLine("addExampleTab(node);");
  16.             str.AppendLine("}");
  17.             str.AppendLine("});");
  18.             return str.ToString();
  19.         }</P>
  20. <P>//后台动态调用</P>
  21. <P> /// <summary>
  22.        /// 初始化菜单
  23.        /// </summary>
  24.         private void IniMenu()
  25.         {
  26.             accordionMenu.Panes.Clear();
  27.             bool alreadyShow = false;
  28.             List<Modelt_PageColumn> menuList = new BLL.BLLt_master().GetPages(Session[DString.MUSER_ID].ToInt());</P>
  29. <P>            foreach (Modelt_PageColumn page in menuList.FindAll(delegate(Modelt_PageColumn model)
  30.             {
  31.                 if (model.ViewMode.Equals(false))
  32.                 {
  33.                     return false;
  34.                 }
  35.                 return model.parentId.Equals(null);
  36.             }))
  37.             {
  38.                 AccordionPane ap = new AccordionPane();
  39.                 ap.Title = page.PageColumnName;
  40.                 ap.Layout = Layout.Fit;
  41.                 ap.ShowHeader = false;
  42.                 ap.IconUrl = page.icon;
  43.                 ap.ID = "AccordionPane" + page.PageColumnId;
  44.                 accordionMenu.Panes.Add(ap);</P>
  45. <P>                Tree tree = new Tree();
  46.                 tree.ID = "tree" + page.PageColumnId;
  47.                 tree.ShowHeader = false;
  48.                 tree.ShowBorder = false;
  49.                 tree.AutoScroll = true;
  50.                 PageContext.RegisterStartupScript(GetScriptById("RegionPanel1_Region2_accordionMenu_" + ap.ID + "_" + tree.ID));
  51.                  CreatMenu(page.PageColumnId, menuList, tree, ap, ref alreadyShow);</P>
  52. <P>            }
  53.            
  54.         }</P>
  55. <P>//default.js 中 addExampleTab 方法</P>
  56. <P>// 动态添加一个标签页
  57.     function addExampleTab(node) {
  58.         var href = node.attributes.href;</P>
  59. <P>        // 动态创建按钮
  60.         //        var sourcecodeButton = new Ext.Button({
  61.         //            text: "源代码",
  62.         //            type: "button",
  63.         //            cls: "x-btn-text-icon",
  64.         //            icon: "./res.axd?icon=PageWhiteCode",
  65.         //            listeners: {
  66.         //                click: function (button, e) {
  67.         //                    windowSourceCode.box_show('./source.aspx?files=' + href, '源代码');
  68.         //                    e.stopEvent();
  69.         //                }
  70.         //            }
  71.         //        });</P>
  72. <P>        var openNewWindowButton = new Ext.Button({
  73.             text: '新标签页中打开',
  74.             type: "button",
  75.             cls: "x-btn-text-icon",
  76.             icon: "./res.axd?icon=TabGo",
  77.             listeners: {
  78.                 click: function (button, e) {
  79.                     window.open(href, "_blank");
  80.                     e.stopEvent();
  81.                 }
  82.             }
  83.         });</P>
  84. <P>        var refreshButton = new Ext.Button({
  85.             text: '刷新',
  86.             type: "button",
  87.             cls: "x-btn-text-icon",
  88.             icon: "./res.axd?icon=Reload",
  89.             listeners: {
  90.                 click: function (button, e) {
  91.                     // 注意:button.ownerCt 是工具栏,button.ownerCt.ownerCt 就是当前激活的标签页。
  92.                     Ext.DomQuery.selectNode('iframe', button.ownerCt.ownerCt.getEl().dom).contentWindow.location.replace(href);
  93.                     e.stopEvent();
  94.                 }
  95.             }
  96.         });</P>
  97. <P>        // 动态添加一个带工具栏的标签页
  98.         var tabId = 'dynamic_added_tab' + node.id.replace('__', '-');
  99.         var currentTab = mainTabStrip.getTab(tabId);
  100.         if (!currentTab) {
  101.             mainTabStrip.addTab({
  102.                 'id': tabId,
  103.                 'url': href,
  104.                 'title': node.text,
  105.                 'closable': true,
  106.                 'bodyStyle': 'padding:0px;',
  107.                 'iconCls': 'icon_' + href.replace(/[^.]+\./, ''),
  108.                 'tbar': new Ext.Toolbar({
  109.                     items: ['->', refreshButton, '-', openNewWindowButton]
  110.                 })
  111.             });
  112.         } else {
  113.             mainTabStrip.setActiveTab(currentTab);
  114.         }
  115.     }</P>
  116. <P>    mainTabStrip.on('tabchange', function (tabStrip, tab) {
  117.         if (tab.url) {
  118.             window.location.href = '#' + tab.url;
  119.         } else {
  120.             window.location.href = '#';
  121.         }
  122.     });</P>
  123. <P> </P>
  124. <P>     </P>
复制代码
最后出错:addExampleTab is not defined





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