2

我正在尝试使用新的 MVC 方法在 extjs 4 中构建一个应用程序。我有一个网格,用户可以click在其中一行并完成编辑Ext.window.

Ext.window与选项卡在控制器中定义为视图。我在两件事上遇到问题:


1)窗口有 2 个网格,当单击选项卡时,我想从商店填充它们。在定义网格的存储时,即使它在我的控制器中被拒绝,我也无法访问它。我试过了

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

但没有运气!

还尝试为视图定义多个商店:

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

但也没有运气。如果我在视图中只定义了一个商店,this.Countries例如,我可以访问它。


2)我的第二个问题部分相关。The Ext.window是一个从被点击的网格行中填充数据的表单。

如何使用推送到其中的数据填充 Ext.window 表单中的一个网格?默认情况下它是否应该有一个空商店,然后在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 回答