Javascript 使用DirectJEngine DirectStore填充ExtJS网格
我正在尝试使用DirectStore填充网格。虽然我可以在Firebug中看到数据,但网格中没有显示任何数据。我甚至尝试将数据转储到DataView中,以查看是否在GridPanel中出错,但也没有显示任何内容。尝试同时使用JSON和XML读取器,但均无效 知道这里发生了什么吗 下面是javascript:Javascript 使用DirectJEngine DirectStore填充ExtJS网格,javascript,extjs,Javascript,Extjs,我正在尝试使用DirectStore填充网格。虽然我可以在Firebug中看到数据,但网格中没有显示任何数据。我甚至尝试将数据转储到DataView中,以查看是否在GridPanel中出错,但也没有显示任何内容。尝试同时使用JSON和XML读取器,但均无效 知道这里发生了什么吗 下面是javascript: var RecordDef = Ext.data.Record.create([ {name: 'ProgramName'} ]); var jsonReader = new Ex
var RecordDef = Ext.data.Record.create([
{name: 'ProgramName'}
]);
var jsonReader = new Ext.data.JsonReader({
root: 'list',
fields: [
{name: 'ProgramName', type: 'string'}
]
});
var xmlReader = new Ext.data.XmlReader({
record: "ProgramName"
}, RecordDef);
var mystore = new Ext.data.DirectStore({
autoLoad: true,
reader: jsonReader,
paramsAsHash: false,
storeId:'mystore',
directFn: DataAction.getProgramNames
});
var grid = new Ext.grid.GridPanel({
renderTo:'grid',
store: mystore,
columns: [
{id:'ProgramName', header: 'ProgramName', sortable: true, dataIndex: 'ProgramName'}
],
stripeRows: true,
autoExpandColumn: 'ProgramName',
fitToFrame: true,
fitContainer: true,
height: 200,
title: 'Coolness',
});
这是我从Firebug中得到的数据:
{"result":
"{\"list\":
[{\"ProgramName\":\"Name1\"},
{\"ProgramName\":\"Name2\"},
{\"ProgramName\":\"Name3\"},
{\"ProgramName\":\"Name4\"}]}",
"tid":2,"action":"DataAction","method":"getProgramNames","type":"rpc"}
结果值是字符串,而不是包含数组的名为list的对象。它应该是这样的(请注意,整个“result”值周围的双引号已被删除):
这样,您也不必逃避所有的双引号。D'oh!我们从获取XML和JSON开始切换,其中一个类使用JSONHierarchycalStreamDriver()返回JSON字符串,而不是让direct方法返回对象列表。谢谢很抱歉的确如此:)非常感谢你的回复。
{"result":
{\"list\":
[{\"ProgramName\":\"Name1\"},
{\"ProgramName\":\"Name2\"},
{\"ProgramName\":\"Name3\"},
{\"ProgramName\":\"Name4\"}]},
"tid":2,"action":"DataAction","method":"getProgramNames","type":"rpc"}