是否有任何方法将ExtJs网格面板的JSON存储作为二维数组发送到Controller。提前谢谢。
要从您的存储中获取一组记录,您可以使用:
var store = gridpanel.getStore();
var records = store.getRange();
// If you don't want any of that metadata referring to the gridpanel.
var rawRecords = records.map(function(r) {return r.data;});
要将其传递给控制器,最好的做法是从栅格面板中触发一个事件,并让控制器监听它
// Somewhere in gridpanel or a reference to whatever your custom class is
gridpanel.fireEvent('rawRecordsEvent', rawRecords);
...
// In controller
Ext.define('MyApp.controller.GridController', {
extend: 'Ext.app.Controller',
init: function() {
this.control({
// gridpanel or alias of whatever your custom class is.
'gridpanel': {
rawRecordsEvent: this.onRawRecordsEvent
}
});
},
onRawRecordsEvent: function(rawRecords) {
console.log(rawRecords);
}
});
下面是一个很好的例子,说明如何使用控制器来监听视图组件:http://www.objis.com/formationextjs/lib/extjs-4.0.0/docs/api/Ext.app.Controller.html
我认为您可以使用baseParams选项来发送您需要的任何参数。例如:
var store = new Ext.data.JsonStore({
baseParams: {some_array: [['1'],['2']]},
...