タブ切り替え時にコンポーネントを再レンダリングする方法はありますか?私は特定のアクセス許可を含むすべてのストアをロードするこのデータを持っています。各タブには、ビューに提供された内容のみが含まれている必要があります。以下の私のスクリーンショットを参照してください。ExtJS 4.2のコンポーネントの更新と再レンダリング
基本的に、これはinitComponent
時にロードします。私が現在持っているジレンマは、BackofficeタブがWombatタブとは異なる権限を持っているということです。アイデアは、いずれかに編集許可(sCreate
)というアクセス許可が含まれている場合に、そのロールのみが表示されている編集ボタンを表示できることです。したがってBackofficeはsEcommCreate
、WombatはsCreate
です。どちらかが真であれば、単にinitComponent
の間に表示する列に追加/プッシュします。
if (EcommBackoffice.plugin.Security.getAccess(oMe.sCreatePermission)) {
aColumns.push({
header: 'Action',
xtype: 'actioncolumn',
itemId: 'edit-role-btn',
width: 100,
sortable: false,
resizable: false,
draggable: false,
menuDisabled: true,
items: [{
icon: 'resources/img/editpermissions.png',
tooltip: 'Edit Permissions',
scope: oMe
}],
editor: {
xtype: 'text',
name: 'editRow',
cls: 'banks-delete-row'
}
});
}
他のタブのスイッチをオンにしたとき、および読み込み時に、表示をフィルタする方法を教えてください。現在、sCreate
またはsEcommCreate
がその条件をパスすると、これはただ1つのstore
なので、両方のロールにボタンを追加するだけです。
はすでに、コントローラからデータストアを再ロードしようとしたが、それは のみそれらを非表示/どちらか 追加/削除/ショーにコンポーネントを再描画データをロードし、そしてません。
より明確にするために、私はそれはそれに割り当てられた権限を作成している場合Action
列を削除しない/非表示にする必要があります。
これは試してもうまくいかないようです。 'this.up( 'tabpanel')。getActiveTab()。text'をロギングしようとしました。 'getActiveTab' of null'プロパティを読み取れません。 – ralphcarlo
これはExt.toolbarにも当てはまりますか?私のタブは 'Ext.toolbar.Toolbar'を使って作成されます。 'this.up( 'tabpanel')'は、私がタブを使用していると仮定していると仮定しています。 – ralphcarlo
これは問題を解決していないようです。ボタンは非表示にしますが、列自体は非表示にします。また、タブを切り替えても、そのまま動作します。 – ralphcarlo