我有一个使用json,dojo的portlet项目。我得到一个错误“TypeError:this._arrayOfTopLevelItems is undefined”如果我使用从控制器传递给模型中的jsp的JSONObject填充的ItemFileReadStore填充DataGrid(请参阅data1)。要调试我发现如果我将JSONObject的内容打印到控制台,然后将此内容作为字符串加载存储(请参阅data4)我没有收到错误。我研究了这个错误,发现如果你没有在json数据中提供一个标识符,但是我正在提供它,那么就会出现错误。
function initalizeAddPoliciesStore(){
//use when returning a JSONObject ???
var data1 = '${multiArrangementCaseInfo}';
var addPoliciesStore1 = new dojo.data.ItemFileReadStore({ data: data1 });
var data4 = {"items":[{"nextDate":"12/27/2011","nextBillAmount":"10.03","policy":"12345678","owner":"Smith, A","insured":"Smith, J","prior2PaidAmount":"42.08","priorPaidAmount":"34.05"}],"identifier":"policy"};
var addPoliciesStore4 = new dojo.data.ItemFileReadStore({ data: data4 });
addPoliciesGrid = new dojox.grid.DataGrid({
id : '<portlet:namespace/>addPoliciesGrid',
query : {
policy : '*'
},
store : addPoliciesStore1,
structure : displayMCOMLayout
}, '<portlet:namespace/>addPoliciesGridTableId');
// Call startup, in order to render the grid:
addPoliciesGrid.startup();
}