2013-09-02 2 views
0

Моя проблема очень похожа на этот вопрос:ExtJS4 Сетка магазин/модель показывает пустую строку (ы)

ExtJS4 gridPanel data not showing

, но в отличии битов в синтаксисе & поведения, я провел день (ы), чтобы решить, попробовав разными способами, но потерпел неудачу.

Пожалуйста, обратите внимание, что: я должен держать поведение поколения SharpKit.NET путем вызова родительского конструктора вместо строительства JSon поля, как код ниже

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(); 
}); 

ответ

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(); 
}); 
+0

Поблагодарите Philosofis за вашу помощь! но я хотел сохранить синтаксис и формат кода как код генерации кода SharpKit, в коде, который был выше, генерации SharpKit, требуемой для вызова базового конструктора (без объявления в качестве вашей модификации). –