0

私の問題は、この質問と非常によく似ています:

ExtJS4 gridPanel データが表示されない

しかし、構文と動作の少しの違いで、私は多くの方法で解決するために何日も費やしましたが、失敗しました。

注意してください: 次のコードのように、json フィールド構築の代わりに親コンストラクターを呼び出すことにより、SharpKit.NET 生成動作を維持する必要があります。

Ext.define("Core.Scripts.model.Book", {
    extend: "Ext.data.Model",
    fields: ["title", "pages"] // Do not use this
});

Ext.define("Core.Scripts.model.Book", {
    extend: "Ext.data.Model",
    constructor: function () {
        this.callParent([{ fields: ["title", "pages"] }]); // Use this
    }
});

これは、jsfiddle http://jsfiddle.net/thanhptr/LqXan/の簡略化されたバージョンへのリンクです。以下は私のコピーしたコードですが、このコードはまだ修正されていません:

Ext.define("Core.Scripts.model.Book", {
    extend: "Ext.data.Model",
    constructor: function () {
        this.callParent([{ fields: ["title", "pages"] }]);
    }
});
Ext.define("Core.Scripts.store.Store", {
    extend: "Ext.data.Store",
    constructor: function () {
        this.callParent([{
            model: "Core.Scripts.model.Book",
            data: [
                { title: "book 1", pages: 10 },
                { title: "book 2", pages: 20 }
            ]
        }]);
    }
});
Ext.define("Core.Scripts.view.GridPanel", {
    extend: "Ext.grid.Panel",
    constructor: function () {
        this.callParent([{
            store: new Core.Scripts.store.Store(),
            region: "center",
            columns: [
                { header: "title", dataIndex: "title" },
                { header: "pages", dataIndex: "pages" }
            ]
        }]);
    }
});
Ext.define("Core.Scripts.view.DetailViewport", {
    extend: "Ext.container.Viewport",
    constructor: function () {
        this.callParent([{
            frame: true,
            layout: "border",
            items: [new Core.Scripts.view.GridPanel()]
        }]);
    }
});
Ext.onReady(function () {
    var viewPort = new Core.Scripts.view.DetailViewport();
});
4

1 に答える 1

0

あなたの例も機能させることができませんでしたが、いくつかのコードを変更して機能させました。

Ext.define("Core.Scripts.model.Book", {
    extend: "Ext.data.Model",
    fields: ["title", "pages"]
});
Ext.define("Core.Scripts.store.Store", {
    extend: "Ext.data.Store",
    model: "Core.Scripts.model.Book",
    data: [
        { title: "book 1", pages: 10 },
        { title: "book 2", pages: 20 }
    ]
});

Ext.define("Core.Scripts.view.GridPanel", {
    extend: "Ext.grid.Panel",
    region: "center",
    height: '200',
    store: Ext.create('Core.Scripts.store.Store'),
    columns: [
        { header: "title", dataIndex: "title" },
        { header: "pages", dataIndex: "pages" }
    ]

});

Ext.define("Core.Scripts.view.DetailViewport", {
    extend: "Ext.container.Viewport",
    frame: true,
    layout: "border",
    initComponent: function () {
        this.items = [new Core.Scripts.view.GridPanel];
        this.callParent(arguments);     
    }

});
Ext.onReady(function () {
    var viewPort = new Core.Scripts.view.DetailViewport();
});
于 2013-09-02T18:31:49.317 に答える