删除项目后如何在dojo 1.9中刷新datagrid

删除项目后如何在dojo 1.9中刷新datagrid,dojo,dojox.grid.datagrid,xmlstore,Dojo,Dojox.grid.datagrid,Xmlstore,我正在使用Dojo Toolkit 1.9 Datagrid,我正在从xmlStore填充数据,但我面临的一个问题是,在从Datagrid中删除任何项之后,在手动刷新浏览器之前,它不会得到刷新。你能告诉我怎么做吗?源代码如下: 用户演示 var globalUserId; var appContext=“/”+(window.location.pathname).split(“/”[1]; 要求( ['dojo/dom'、'dojo/json'、'dojox/json/schema', 'd

我正在使用Dojo Toolkit 1.9 Datagrid,我正在从xmlStore填充数据,但我面临的一个问题是,在从Datagrid中删除任何项之后,在手动刷新浏览器之前,它不会得到刷新。你能告诉我怎么做吗?源代码如下:


用户演示
var globalUserId;
var appContext=“/”+(window.location.pathname).split(“/”[1];
要求(
['dojo/dom'、'dojo/json'、'dojox/json/schema',
'dojox/data/JsonRestStore'、'dojox/grid/DataGrid',
'dojox/grid/_CheckBoxSelector'、'dojo/on',
“dojo/request/xhr”、“dijit/Dialog”、“dojox/data/XmlStore”,
“dijit/form/FilteringSelect”、“dijit/Calendar”,
“dijit/form/form”、“dijit/form/ValidationTextBox”,
“dijit/form/TextBox”、“dijit/form/FilteringSelect”,
“dijit/form/Button”、“dijit/layout/TabContainer”,
'dijit/layout/ContentPane'、'dojo/domReady!'],
函数(dom、JSON、模式、JsonRestStore、DataGrid、,
_复选框选择器,打开,xhr){
var userDataStore12=新的dojox.data.XmlStore({
url:appContext+“/rest/userservice/getusers”,
根项目:“用户”
});
var gridCell=[{field:“userid”,name:“userid”,width:'10%},
{字段:“名称”,名称:“名称”,宽度:“15%”,
{字段:“电子邮件”,名称:“电子邮件”,宽度:“15%”,
{字段:“用户名”,名称:“用户名”,宽度:“10%”,
{字段:“电话”,名称:“电话”,宽度:“10%”,
{字段:“roleName”,名称:“Role”,宽度:“10%”,
{字段:“状态”,名称:“状态”,宽度:“10%”,
{名称:“动作”,字段:“动作”,宽度:“10%”,
格式化程序:函数(项){
var-link='';
返回链接;
}
}];
gridLayout=[{
//首先,使用_CheckBoxSelector自定义类型
类型:“dojox.grid.\u CheckBoxSelector”
},gridCell];
网格=新的数据网格({
存储:userDataStore12,
结构:网格布局,
选择模式:“单一”,
自动高度:真
},“ObjectGrid”);
grid.startup();
打开(网格,“行单击”,函数showDetail(e){
var gridUserId=grid.store.getValue(grid.getItem(e.rowIndex),“userid”);
globalUserId=gridUserId;
});
});
函数deleteUser(){
require(['dojo/dom','dojo/request'],函数(dom,request){
//删除用户的请求
request.post(appContext+“/rest/userservice/deleteUser”{
数据:“userId=”+globalUserId,
超时:2000
}).然后(功能(响应){
日志(“请求发送成功!!!!!!!”;
});
});
}

我用这种方法删除了数据网格的一行。我通过复选框选择一行,然后通过网格末尾的按钮调用函数getSelectedItems()来删除所选行

函数getSelectedItems(){ require([“dijit/registry”,“dojo/_base/array”,“dojo/domReady!”]),函数(注册表,数组){ var items=registry.byId(“GraphGrid”).selection.getSelected(); if(项目长度){ array.forEach(项、函数(selectedItem){ /*从数据存储中删除该项:*/ GraphicsStore.deleteItem(选择编辑项); }); } }); } 更新

时间晚了一点,我不确定这个问题是否仍然存在,但我现在为自己解决了这个问题。我的问题和你的差不多。我在ContentPane中显示了一个Datagrid,并希望删除单个行。问题是,在我删除该项后,网格没有刷新。所以我给它装上了

grid.setStore(GraphicStore);
但是ContentPane除了列标题之外仍然是空的。当我对行进行排序时,会出现新的网格。然后,我设置了一个警报,看看网格是否仍然是registert,随着这个警报,网格突然出现了! 为了解决这个问题,我设置了一个超时,这样网格就可以完全加载(我想这与加载有关),然后设置新的存储。 网格出现-问题已解决

我是这样做的:

  setTimeout(function(){
    grid.setStore(GraphicStore);
    }, 1000);
你好,米里亚姆