extjs 4 gleiche Komponente mit mehreren tabs
ich m arbeiten mit extjs 4 & rails 3. ich bin mit toolbar & tab-panel. ich will gleiche Symbolleiste in allen tab-panel & wollen die Schaltflächen auf der Symbolleiste, um die Arbeit nach Registerkarte aktiv ist. Für zB. Symbolleiste enthält hinzufügen,Bearbeiten,usw Tasten. Angenommen ich habe-region & Kategorie tabs. Wenn region Registerkarte aktiv ist, sollte ich in der Lage zu führen Sie die "ADD" - operation für die "Region" & so weiter. Was kann der richtige Weg, um dieses Ziel zu erreichen extjs 4 ? Ich bin nicht in der Lage, um eine Aktion zuzuweisen, die auf der Symbolleiste in der Region & Category Controller?
ich bezog mich dieseaber keine Ahnung, wie kann ich es umsetzen in meinem code ?
Hier ist der Beispielcode von "Regionen" extjs mvc-controller, den ich ausprobiert habe. Das problem ist, wenn ich Schreibe, ähnlichen code in Kategorie Controller für das HINZUFÜGEN von btn commontoolbar, FÜGEN Sie die Umsetzung der Region aufgerufen wird 🙁
Ext.define('overdrive.controller.Regions', {
extend: 'Ext.app.Controller',
views: [
'region.RegionList',
'region.RegionForm',
'region.RegionPanel',
'common.CommonToolbar'
],
models: ['Region'],
stores: ['Regions'],
init: function() {
this.control({
'viewport > panel': {
render: this.onPanelRendered
},
'regionpanel':{
beforerender:this.addToolbar
} ,
'commontoolbar button[action=chk]': {
click: this.chk
}
});
},
chk:function()
{
var tabcon = Ext.getCmp('tabcon');//tabcon is id of tab panel
var activetab = tabcon.getActiveTab();
var activetabid = activetab.getId();
console.log('Active Tab ID:'+activetabid);
if(activetabid == 'regiontab'){
alert('Clicked button in region Tab');
}else if(activetabid == 'storetab'){
alert('Clicked button in store Tab');
}
},
addToolbar:function()
{
var regionpanel=Ext.widget('regionpanel');
var regiontab=Ext.getCmp('regiontab');
var tabcon = Ext.getCmp('tabcon');
regiontab.add({
xtype:'commontoolbar', id:'regiontoolbar',
itemId: 'regiontoolbar'
});
},
addRegion: function(button) {
var regiontoolbar=button.up('regiontoolbar');
var regiontab = Ext.getCmp('regiontab');
var regionpanel = regiontab.down('regionpanel');
var regionform = regionpanel.down('regionform');
regiontoolbar.child('#add').setDisabled(true);
regiontoolbar.child('#edit').setDisabled(true);
regiontoolbar.child('#delete').setDisabled(true);
regiontoolbar.child('#save').setDisabled(false);
regiontoolbar.child('#cancel').setDisabled(false);
regionpanel.layout.setActiveItem(regionform);
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hoffe, dass der folgende code wird Ihnen helfen:
Können Sie das funktionierende Beispiel der obige code durch klicken auf den folgenden link:
http://jsfiddle.net/kVbra/23/
1.Nach dem öffnen Sie den obigen link finden Sie das Ergebnis in der rechten unteren Ecke.
2.Wie pro Ihre Frage eine Symbolleiste erstellt, und es wird mit zwei Registerkarten mit der gleichen Taste.
3.Wenn Sie auf die Schaltfläche klicken,dann erhalten Sie die aktuelle Registerkarte-id und zeigt Sie den anderen Ergebnis als Grundlage, welche Registerkarte aktiviert ist.
Wenn Sie streng auf die Verwendung von nur einer Klasse,kann der code unten ist auch hilfreich für Sie, shruti:
Beispiel arbeiten:
http://jsfiddle.net/kesamkiran/kVbra/30/