Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用DirectJEngine DirectStore填充ExtJS网格_Javascript_Extjs - Fatal编程技术网

Javascript 使用DirectJEngine DirectStore填充ExtJS网格

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

我正在尝试使用DirectStore填充网格。虽然我可以在Firebug中看到数据,但网格中没有显示任何数据。我甚至尝试将数据转储到DataView中,以查看是否在GridPanel中出错,但也没有显示任何内容。尝试同时使用JSON和XML读取器,但均无效

知道这里发生了什么吗

下面是javascript:

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"}