2014-01-31 2 views
0

У меня есть форма с tabpanel (tabpanel имеет две вкладки). В форме у меня есть одна кнопка (имя: начало), и я хочу: при выборе первой вкладки -> делает одно действие при выборе второй вкладки -> другое действие.Различные действия для одной кнопки по форме

это в контроллере:

showCreateForm: function(button) { 
    actions... 
}, 

какие условия нужно писать в контроллер? благодаря

ответ

0

Хороший вопрос ....

ExtJs имеют одно преимущество, то есть, чтобы слушать действие элемента путем использования его путь и некоторый уникальный атрибут, например Inside_Some_XType-> TabPanel-> TabName-> Кнопка так попробовать это манера ...

следующий пример того, что я сделал в моем проекте, прежде чем он будет поможет вам

часы в разделе реф, как мы сделали это ...

Ext.define("XCP.controller.LoginController", { 
    extend: "Ext.app.Controller", 
    views: ["LoginScreen"], 
    refs: [ 
      //Ext.ComponentQuery 
      { ref: "userName", selector: "login > textfield[id=usernametext]" }, 
      { ref: "password", selector: "login > textfield[inputType=password]" }, 
      { ref: "homeScreen", selector: "home" } 
    ], 
    init: function() { 
     this.control({ 
      "login > button[text=Submit]": { 
       click: this.onLoginButtonClicked 
      }, 
      "login > button[text=Reset]": { 
       click: this.onResetButtonClicked 
      }, 
      "#logoutbutton": { 
       click: this.onLogoutButtonClicked 
      } 
     }); 
    }, 
    onLogoutButtonClicked: function() { 
     this.application.viewport.getLayout().setActiveItem(0); 
    }, 
    onResetButtonClicked: function() { 
     alert("Reset"); 
    }, 
    onLoginButtonClicked: function() { 
     if (this.getUserName().getValue() == "admin" && 
       this.getPassword().getValue() == "admin") { 
      if(!this.getHomeScreen()) 
       this.application.viewport.add({ xtype: "home", id: "homescreen" }); 
      this.application.viewport.getLayout().setActiveItem(1); 
     } 
     else 
      alert("Invalid credentials"); 
    } 
}); 

, в противном случае вы должны создавать по умолчанию и уникальный идентификатор для каждой кнопки на вкладке ... ее не возобновлять.

0

ой спасибо, и я должен написать рефов в моем контроллере об этом ?:

refs: [ 
{ ref: "sellBook", selector: "bookgrid>TabPanel>Tab1>button[action=check-book]"}, 
{ ref: "buyBook", selector: "bookgrid>TabPanel>Tab2>button[action=check-book]" }, 
],) 

init: function() 
{ this.control(

{ "bookgrid > button[action=check-book]": { click: this.sellBookShow }, 
{ "bookgrid> button[action=check-book]": { click: this.buyBookShow }, }) 
+0

хммм ........... – vino20

+0

спасибо, я сделать это с помощью двух условий, если (activeTab == 'tab1') {...} else if {...} – user3045654

+0

good ........... – vino20

Смежные вопросы