Tôi đang cố tạo lớp Dynamic Grid (nơi tôi không biết bất kỳ thông tin nào về các cột nhưng chúng được đưa ra từ phản hồi json và gird tự chuẩn bị tương ứng). Here Tôi đã tìm thấy chính xác những gì tôi đang tìm kiếm tuy nhiên nó mang lại cho tôi một lỗi:Tạo Lưới động với ExtJS
me.model is undefined
me.setProxy(me.proxy || me.model.getProxy());
ext-all-debug.js (line 47323)
Tôi đã cố gắng thêm cả proxy và mô hình nhưng tôi đã không thành công, tôi vẫn tiếp tục nhận được lỗi tương tự.
Đây là mã ExtJS mà tôi đang làm việc trên:
// ExtJS 4.1
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', '../extjs-4.1.0/examples/ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*', ]);
Ext.define('DynamicGrid', {
extend: 'Ext.grid.GridPanel',
storeUrl: '',
enableColumnHide: true,
initComponent: function() {
var store = new Ext.data.Store({
url: this.storeUrl,
reader: new Ext.data.JsonReader(),
autoLoad: true,
scope: this,
listeners: {
scope: this,
metachange: function (store, meta) {
if (typeof (store.reader.jsonData.columns) === 'object') {
var columns = [];
/**
* Adding RowNumberer or setting selection model as CheckboxSelectionModel
* We need to add them before other columns to display first
*/
if (this.rowNumberer) {
columns.push(new Ext.grid.RowNumberer());
}
if (this.checkboxSelModel) {
columns.push(new Ext.grid.CheckboxSelectionModel());
}
Ext.each(store.reader.jsonData.columns, function (column) {
columns.push(column);
}); // Set column model configuration
this.getColumnModel().setConfig(columns);
this.reconfigure(store, this.getColumnModel());
}
}
}
});
var config = {
title: 'Dynamic Columns',
viewConfig: {
emptyText: 'No rows to display'
},
loadMask: true,
border: false,
stripeRows: true,
store: store,
columns: []
}
Ext.apply(this, config);
Ext.apply(this.initialConfig, config);
DynamicGrid.superclass.initComponent.apply(this, arguments);
},
onRender: function (ct, position) {
this.colModel.defaultSortable = true;
DynamicGrid.superclass.onRender.call(this, ct, position);
}
});
Ext.onReady(function() {
Ext.QuickTips.init();
var grid = Ext.create('DynamicGrid', {
storeUrl: 'http://300.79.103.188/ApplicationJs/jsontest.json'
});
var depV = Ext.create('Ext.Viewport', {
title: 'Departman Tanımları',
layout: 'fit',
items: grid
}).show();
});
gì tôi phải làm inorder để làm cho nó chạy?
"Response MetaData". – ilhan
Tôi tin rằng OP đã đề cập đến các tài liệu cho Ext.data.reader.Json - trong 4.2 một http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.data.reader.Json – Sarge
@Sarge 4.2 không được phát hành tại thời điểm bài đăng – Geronimo