【问题标题】:How to add Tools dynamically in an Ext Js window?如何在 Ext Js 窗口中动态添加工具?
【发布时间】:2011-07-15 12:45:29
【问题描述】:

我想在窗口中动态添加一个工具(搜索、帮助、齿轮...),如下所示: http://www.rahulsingla.com/sites/default/files/content/blog/extjs/extjs-panel-add-tool.htm

而且我需要同时创建多个 UIMyWindow 实例。

但是,我使用的是 Ext Designer,它会生成 2 个文件:

  • MyWindow.ui.js:类声明。
  • MyWindow.js:方法实现。

除了 Ext Designer 在设计时没有选项工具(我没有找到)。

我在 MyWindow.js 和 MyWindow.ui.js 之外添加工具,如下所示:

var winMyWindow = new UIMyWindow({
    autoShow: 'true', 
    tools: [{
               type:'gear',
               handler: function(){
                   // Some code...
               }
    }]
});

但我想把这个块放在 MyWindow.js 中。所以,我这样做了:

UIMyWindow = Ext.extend(UIMyWindowUi, {
    tools: [{
               type:'gear',
               handler: function(){
                   // Some code...
               }
    }],

initComponent: function() {
   UImenuDock.superclass.initComponent.call(this);

如果你问我“为什么不把这段代码放在 MyWindow.ui.js 中?”,我会回答“因为我不想每次在设计文件(Ext Designer )”。

好吧,如果我打开一个窗口,它似乎工作正常,但如果我同时打开第二个窗口,工具会在第二个窗口中复制......

那么,知道在这种特定情况下如何在 MyWindow.js 中动态添加工具吗?

【问题讨论】:

    标签: extjs4 extjs extjs3


    【解决方案1】:

    将“工具”放入initComponent

    UIMyWindow = Ext.extend(UIMyWindowUi, {  
    
    initComponent: function() {
      this.tools = [{
                   type:'gear',
                   handler: function(){
                       // Some code...
                   }
        }], 
      UImenuDock.superclass.initComponent.call(this);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2015-09-24
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多