使用带有增强DataGrid的Dojo Json Rest存储不会发送任何查询

使用带有增强DataGrid的Dojo Json Rest存储不会发送任何查询,json,rest,dojo,dojox.grid.datagrid,Json,Rest,Dojo,Dojox.grid.datagrid,Im使用Dojo 1.7.1 Dojo.store.JsonRest用数据填充EnhancedGrid。 然而,使用Firebug,无论是在启动时还是启动时,我都看不到发送的任何查询 过滤后遗症。桌子还是空的 概述: 一个增强的网格和一个JsonRest存储是以声明方式创建的。 存储被配置为使用REST服务,其GET功能仅限于 返回包含1个元素的Json数组。 一个按钮调用Grids filter函数来测试启动后是否发送查询 该服务返回一个静态Json字符串,如下所示: [{id:'1',fir

Im使用Dojo 1.7.1 Dojo.store.JsonRest用数据填充EnhancedGrid。 然而,使用Firebug,无论是在启动时还是启动时,我都看不到发送的任何查询 过滤后遗症。桌子还是空的

概述: 一个增强的网格和一个JsonRest存储是以声明方式创建的。 存储被配置为使用REST服务,其GET功能仅限于 返回包含1个元素的Json数组。 一个按钮调用Grids filter函数来测试启动后是否发送查询

该服务返回一个静态Json字符串,如下所示:

[{id:'1',firstname:'John',lastname:'Doe'}] 
源代码如下:

<html>
<head>
    <title>Rest Test</title>
    <style type="text/css">
        @import "js/dojo/resources/dojo.css";
        @import "js/dijit/themes/claro/claro.css";
        @import "js/dojox/grid/enhanced/resources/claro/EnhancedGrid.css";
        @import "js/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css";
    </style>
    <script type="text/javascript" 
        src="js/dojo/dojo.js" 
        data-dojo-config="parseOnLoad:true"></script>
    <script type="text/javascript">
        dojo.require("dijit.form.Button");
        dojo.require("dijit.form.TextBox");
        dojo.require("dojox.grid.EnhancedGrid");
        dojo.require("dojox.grid.enhanced.plugins.DnD");
        dojo.require("dojox.grid.enhanced.plugins.NestedSorting");
        dojo.require("dojox.grid.enhanced.plugins.IndirectSelection");
        dojo.require("dojo.store.JsonRest");

        dojo.addOnLoad(function(){
            dojo.connect(dijit.byId("filterButton"),"onClick",function(){ 
                dijit.byId("nameTable").filter("*",true);
            });
        });
    </script>
</head>
<body class="claro">
    <button id="filterButton" 
        data-dojo-type="dijit.form.Button">
        Filter Table
    </button>
    <span   id="nameStore"
        data-dojo-type="dojo.store.JsonRest" 
        data-target="http://localhost:8080/MyApp/rest/service3"/>
    <table  id="nameTable"
        style="height:200px;"
        data-store="nameStore"
        data-dojo-type="dojox.grid.EnhancedGrid"
        data-dojo-props="plugins:{dnd: true, nestedSorting: true, indirectSelection: true}" >
        <thead>
            <tr>
                <th data-field="id" width="5%">ID</th>
                <th data-field="firstname" width="45%">Vorname</th>
                <th data-field="lastname" width="50%">Nachname</th>
            </tr>
        </thead>
    </table>
</body>
</html>

休息试验
@导入“js/dojo/resources/dojo.css”;
@导入“js/dijit/themes/claro/claro.css”;
@导入“js/dojox/grid/enhanced/resources/claro/EnhancedGrid.css”;
@导入“js/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css”;
require(“dijit.form.Button”);
require(“dijit.form.TextBox”);
require(“dojox.grid.EnhancedGrid”);
require(“dojox.grid.enhanced.plugins.DnD”);
require(“dojox.grid.enhanced.plugins.NestedSorting”);
require(“dojox.grid.enhanced.plugins.IndirectSelection”);
require(“dojo.store.JsonRest”);
dojo.addOnLoad(函数(){
connect(dijit.byId(“filterButton”),“onClick”,function(){
dijit.byId(“nameTable”).filter(“*”,true);
});
});
过滤表
身份证件
沃名称
姓氏

我是Restful Web服务的新手,我希望能得到一些帮助来解决这个问题。

这可能不是您唯一的问题,但我注意到您使用的是旧的EnhancedGrid,但新的dojo.store.JsonRest没有ObjectStore。 有关更多详细信息,请参阅。以下是摘录:

1.6 DataGrid仍然基于dojo.data API,因此我们将使用dojo.data.ObjectStore适配器将存储连接到DataGrid


这可能不是您唯一的问题,但我注意到您使用的是较旧的EnhancedGrid,但使用的是较新的dojo.store.JsonRest,而没有ObjectStore。 有关更多详细信息,请参阅。以下是摘录:

1.6 DataGrid仍然基于dojo.data API,因此我们将使用dojo.data.ObjectStore适配器将存储连接到DataGrid


是的,这似乎确实是我的大部分问题,但是使用dojo.data.ObjectStore适配器我的代码仍然不起作用,因此我必须解决更多的问题。是的,这似乎确实是我的大部分问题,但是使用dojo.data.ObjectStore适配器我的代码仍然不起作用,因此我必须解决更多的问题。