extjs gridpanel重新配置问题
我需要重新配置extjs gridpanel重新配置问题,extjs,gridpanel,Extjs,Gridpanel,我需要重新配置gridpanel,第一次它工作正常,但第二次它抛出以下错误: JavaScript运行时错误:无法获取未定义或空引用的属性“id” 我的代码有什么问题 $.ajax({ url: "/Home/Create", data: JSON.stringify({ inputdata: selectedValues }), async: false, type: "POST", contentType: 'a
gridpanel
,第一次它工作正常,但第二次它抛出以下错误:
JavaScript运行时错误:无法获取未定义或空引用的属性“id”
我的代码有什么问题
$.ajax({
url: "/Home/Create",
data: JSON.stringify({ inputdata: selectedValues }),
async: false,
type: "POST",
contentType: 'application/json',
success: function (result) {
var columns = [];
var _fields = [];
var data = {
Key: [],
Value: []
};
var nameCount = 0;
var resultSet = result.result;
resultSet.forEach(function (element) {
for (var key in element) {
if (element.hasOwnProperty(key)) {
var keyStr = key;
data.Key.push(keyStr);
data.Value.push(element[key]);
}
}
}
});
var column;
var count = 0;
resultSet.forEach(function (element, index, ar) {
for (var key in element) {
if (!element.hasOwnProperty(key)) continue;
if (element.hasOwnProperty(key)) {
var field = {};
var elementValue = element[key];
var typeCheck = typeof elementValue;
field['name'] = key;
if (key.startsWith('Completed')) {
field['type'] = 'date';
field['submitFormat'] = 'm/d/Y';
field['submitValue'] = true;
}
else {
switch (typeCheck) {
case 'number':
field['type'] = 'int';
break;
case 'boolean':
field['type'] = 'string';
break;
case 'string':
field['type'] = 'string';
break;
case 'object':
field['type'] = 'object';
break;
case 'date':
field['type'] = 'date';
break;
default:
}
}
_fields.push(field);
if (key == 'EmployeeId' || key == 'EmployeeGroup'
|| key == 'GroupMemberId') {
column = Ext.create('Ext.grid.column.Column', {
text: key,
dataIndex: key,
hidden: true
});
columns.push(column);
}
else {
if (!key.startsWith('EmployeeName') && !key.startsWith('EmployeeStatus') && !key.startsWith('Completed')) {
column = Ext.create('Ext.grid.column.Column', {
text: key,
dataIndex: key,
width: 80
});
columns.push(column);
}
}
}
}
});
var keyValue = data.Key;
var values = data.Value;
var nameKeyValue = [];
var nameFinalValue;
for (var i = 0; i < keyValue.length; i++) {
for (var j = 0; j < values.length; j++) {
if (keyValue[i].startsWith('Name')) {
nameKeyValue.push(values[j]);
}
}
}
for (var i = 0; i < keyValue.length; i++) {
nameFinalValue = nameKeyValue[i];
if (keyValue[i].startsWith('Name')) {
var status = keyValue[i + 1];
var completed = keyValue[i + 2];
column = Ext.create('Ext.grid.column.Column', {
text: nameFinalValue,
dataIndex: nameFinalValue,
columns: [
Ext.create('Ext.grid.column.Column', {
text: 'Employee Status',
dataIndex: status,
width: 80,
stopSelection: false,
editable: true,
editor: {
xtype: 'checkbox'
},
field: { xtype: 'checkbox' }
}),
Ext.create('Ext.grid.column.Column', {
text: 'Completed',
dataIndex: completedOn,
width: 80,
editor: new Ext.form.DateField({
xtype: 'datefield',
format: 'm/d/y',
renderer: Ext.util.Format.dateRenderer('m/d/Y')
})
})
]
});
columns.push(column);
}
}
// *** new code
var store = Ext.create("Ext.data.Store", {
id: 'myStore',
fields: _fields,
groupField: 'Group',
proxy: {
type: 'ajax',
reader: {
type: 'json',
root: 'data'
}
}
});
var grid = App.myGrid;
grid.reconfigure(Ext.getStore('myStore'), columns);//this line throws error
grid.getStore().loadData(result.result);
grid.getView().refresh();
selectedValues = [];
}
}
});
$.ajax({
url:“/Home/Create”,
数据:JSON.stringify({inputdata:selectedValues}),
async:false,
类型:“POST”,
contentType:'应用程序/json',
成功:功能(结果){
var列=[];
var_字段=[];
风险值数据={
密钥:[],
值:[]
};
var namecont=0;
var resultSet=result.result;
resultSet.forEach(函数(元素){
for(变量键入元素){
if(element.hasOwnProperty(key)){
var keyStr=键;
数据。按键。按键(keyStr);
data.Value.push(元素[键]);
}
}
}
});
var列;
var计数=0;
forEach(函数(元素、索引、ar){
for(变量键入元素){
如果(!element.hasOwnProperty(key))继续;
if(element.hasOwnProperty(key)){
变量字段={};
var elementValue=元素[键];
var typeCheck=元素值的类型;
字段['name']=键;
if(key.startsWith('Completed')){
字段['type']='date';
字段['submitFormat']='m/d/Y';
字段['submitValue']=true;
}
否则{
开关(类型检查){
案件编号:
字段['type']='int';
打破
“布尔”大小写:
字段['type']='string';
打破
大小写“string”:
字段['type']='string';
打破
案例“对象”:
字段['type']='object';
打破
案例“日期”:
字段['type']='date';
打破
违约:
}
}
_字段。推(字段);
如果(键=='EmployeeId'| |键=='EmployeeGroup'
||键=='GroupMemberId'){
column=Ext.create('Ext.grid.column.column'{
文本:键,
dataIndex:key,
隐藏:真的
});
columns.push(column);
}
否则{
如果(!key.startsWith('EmployeeName')&&&!key.startsWith('EmployeeStatus')&&!key.startsWith('Completed')){
column=Ext.create('Ext.grid.column.column'{
文本:键,
dataIndex:key,
宽度:80
});
columns.push(column);
}
}
}
}
});
var keyValue=data.Key;
var值=data.Value;
var nameKeyValue=[];
var最终价值;
对于(变量i=0;igrid.getStore().removeAll();