Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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 使用JsonRest刷新Gridx时遇到问题_Javascript_Json_Dojo_Dojo.gridx_Jsonreststore - Fatal编程技术网

Javascript 使用JsonRest刷新Gridx时遇到问题

Javascript 使用JsonRest刷新Gridx时遇到问题,javascript,json,dojo,dojo.gridx,jsonreststore,Javascript,Json,Dojo,Dojo.gridx,Jsonreststore,选择帐户后,我想在contactGrid中显示所有相关联系人。 我可以用XhrGet实现这一点,但我希望使用JsonRest 下面是我如何设置网格的: function contactTabSetup() { var structure = [{ field: 'id', name: 'Id', width: '5em' }, { field: 'firstName', name: 'First Name', width: '12%' },

选择帐户后,我想在contactGrid中显示所有相关联系人。 我可以用XhrGet实现这一点,但我希望使用JsonRest

下面是我如何设置网格的:

function contactTabSetup() {
  var structure = [{ field: 'id', name: 'Id', width: '5em' },
                   { field: 'firstName', name: 'First Name', width: '12%' },
                   { field: 'lastName', name: 'Last Name', width: '12%' },
                   { field: 'email', name: 'Email', width: '12%' },
                   { field: 'description', name: 'Description' },
                   { field: 'mobileNumber', name: 'Mobile Phone', width: '12%' }];

  var contactGrid = new Grid({
    id: 'contactGrid',
    pageSize: 20,
    cacheClass: Cache,
    structure: structure,
    noDataMessage: "No contacts found",
    modules: [SingleSort]}, contactTab);

  contactGrid.startup();
}
以下是我希望填充网格的方式:

function contactLoad(acctIds) {
  var grid = registry.byId("contactGrid");
  grid.model.clearCache();
  grid.setStore(JsonRest({target:"//localhost:8080/program/contacts/byAccount/" + acctIds}));
  grid.body.refresh();
}
正在返回控制台上查看的正确Json响应:

{
    "description": "Mike is a cool guy",
    "email": "mike@mike.net",
    "firstName": "Mike",
    "id": 1503,
    "lastName": "Smith",
    "mobileNumber": "555-555-5555"
}
。。。但我无法让网格显示新数据

任何帮助都将不胜感激! 多谢各位

我尝试了许多其他的方法,但没有成功。。。 这就是我被困的地方——不知道还能尝试什么。 我进行JsonRest调用,返回Json对象,并将其打印到控制台。 看到json响应看起来不错,我尝试设置存储,并抛出了这个错误:s.query不是dojo.js第382行中的函数。这是一个错误,还是我遗漏了什么?多谢各位

// s.query is not a function in dojo 10.0.1
grid.model.clearCache();
var store = new JsonRest({target:"//localhost:8080/program/contacts/byAccount"});
store.get(acctIds).then(function(items){
  console.log(items);
  grid.setStore(items);
});
grid.body.refresh();
我找到了。更改:

grid.setStore(items);

有人知道如何只使用JsonRest而不包括ItemFileReadStore吗? 非常感谢。
克里斯

我的一点建议是尝试设置一次存储,然后改用过滤器

grid.filter({"acctId":"..."});
第二件事是存储有时需要idAttribute定义,即

JsonRestStore({target:"...", idAttribute:"id"});
我尝试使用grid.filter{find:ByItem,item:itemIds};,但它的响应是TypeError:grid.filter不是一个函数。有更新过滤器的想法吗?更改grid.query并刷新网格是否成功?我就是不能让它工作。非常感谢。
JsonRestStore({target:"...", idAttribute:"id"});