2

新しい MVC メソッド アプローチを使用して、extjs 4 でアプリを構築しようとしています。ユーザーがclick行に配置できるグリッドがあり、編集が完了しましたExt.window.

Ext.windowタブ付きのこれは、コントローラーでビューとして定義されます。私は2つのことに問題があります:


1)ウィンドウには 2 つのグリッドがあり、タブがクリックされたときにストアから入力したいと考えています。グリッドのストアを定義するときに、コントローラで拒否されていてもアクセスできません。私は試した

...
xtype:'grid',
store:MyApp.store.Products
columns:[..]
...

しかし運がない!

また、ビューに複数のストアを定義しようとしました:

Ext.define('MyApp.view.Edit', {
    extend:'Ext.window.Window',
    store:['Products','Countries']
...

しかし、運もありません。ビューに 1 つのストアしか定義されていない場合はthis.Countries、たとえば次のようにアクセスできます。


2)私の 2 番目の質問は部分的に関連しています。The Ext.windowクリックされたグリッド行からのデータが取り込まれるフォームです。

プッシュされたデータを Ext.window フォームのグリッドの 1 つに入力するにはどうすればよいですか? デフォルトで空のストアがあり、次にリスナーが必要tabclickですか? または、データ オブジェクトをプッシュすることはできますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

最初の質問に答えるには、コントローラーでストアを参照する必要があります。コントローラーでこのようなことを行うことができます

stores  : ['Products', 'Countries'],

models  : ['Products', 'Countries'],

refs: [
    {ref: 'mytabpanel', selector: 'mytabs'}
],

 init: function() {
    this.control({
        'mytabs': {
            tabchange       : this.loadTabData
        },

     //create a onProductsStoreLoad method to handle stuff
     this.getProductsStore().on({
        scope: this,
        load : this.onProductsStoreLoad
    });


loadTabData: function() {
   var activeTab = this.getMytabpanel().getActiveTab();
   //Do whatever you need
}
于 2011-05-13T19:37:30.807 に答える