2015-10-13 65 views
0

我是新來的extjs,我在將json數據加載到網格時遇到了一些問題。在調試器中,我可以看到網格的商店和列正按照我想要的方式精確填充。但數據不顯示在網格中。我不知道爲什麼。但我的網格不會加載數據。extjs即使在網格對象中存儲和顯示網格時,網格也不會顯示預期數據

我在做什麼錯?

預先感謝您。

網格視圖:

Ext.define('searchadmin.view.reports.DynamicGrid' ,{ 
    extend: 'Ext.grid.Panel', 
    alias : 'widget.dynamicGrid', 
    title : 'Results', 
    columns: [], 
    columnLines : true, 
    sortableColumns : false, 
    autoScroll : true, 
    viewConfig : { 
     stripeRows : false, 
     loadMask:true  
    } 
});  

商店:

Ext.define('searchadmin.store.DynamicGridStore', { 
    extend : 'Ext.data.Store', 
    model: 'searchadmin.model.DynamicGridModel', 

    proxy: { 
     type: 'memory', 
     reader: { 
      type: 'json', 
      root: 'data' 
     } 
    } 
}); 

模型:

Ext.define('searchadmin.model.DynamicGridModel', { 
    extend: 'Ext.data.Model', 
    fields: [] 
}); 

爲頁的視圖配置在其上面的網格是在該要旨: Reports.js

的報告控制器包含代碼動態地構成模型並存儲在handleSelectQueryResult()中:ReportsController

+0

您在控制器中的代碼不正確。你的「executeReport」函數總是返回undefined,請求尚未完成。您需要從成功fn執行回調。 –

+0

@EvanTrimboli - 我已經更新了以上鍊接中的控制器。在調試器中,我可以看到網格的商店和欄目正在填充,所有內容都按照我想要的方式準確無誤地顯示。但數據不顯示在網格中。我不知道爲什麼。我也更新了Reports.js視圖。請看看你是否可以幫助爲什麼網格仍然沒有渲染。您可以在上面的鏈接中查看更新的代碼。我正在使用extjs 4.2.1 –

+0

據我所見,問題仍然存在。 'executeReport'將總是返回'undefined'。 http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call –

回答

1

你將不得不使用reconfigure網格的方法,而不是像handleSelectQueryResultReportsController.js函數那樣分配列和存儲。

grid.columns = _columns; //will not work 
grid.store = queryStore; //will not work 

另請注意,ComponentQuery.query返回一個數組。

試試這個方法。

var grid = Ext.ComponentQuery.query('#dynamicGridId')[0]; //or var grid = Ext.getCmp('dynamicGridId'); 
grid.reconfigure(queryStore, _columns); 
+0

非常感謝你!你知道是否有辦法緩衝網格,使其不能在面板中顯示整個事物嗎?分頁會有幫助。 –

+0

您可以使用分頁或緩衝存儲。請參閱http://dev.sencha.com/ext/5.1.0/examples/grid/buffered-store.html – Gilsha

+0

我接受了。感謝您的幫助! –