Javascript 如何使用行索引而不是选择来删除dojo EnhancedGrid中的行
正在尝试根据行索引查找删除dojo EnhancedGrid的行的答案 请找到增强型网格Javascript 如何使用行索引而不是选择来删除dojo EnhancedGrid中的行,javascript,dojo,dojox.grid.datagrid,Javascript,Dojo,Dojox.grid.datagrid,正在尝试根据行索引查找删除dojo EnhancedGrid的行的答案 请找到增强型网格 var dataStore = new ObjectStore({objectStore: objectStoreMemory}); // grid grid = new EnhancedGrid({ selectable: true, store: dataStore, structure : [ { name : "Country",
var dataStore = new ObjectStore({objectStore: objectStoreMemory});
// grid
grid = new EnhancedGrid({
selectable: true,
store: dataStore,
structure : [ {
name : "Country",
field : "Country",
width : "150px",
reorderable: false,
editable : true
}, {
name : "Abbreviation",
field : "Abbreviation",
width : "120px",
reorderable: false,
editable : true
}, {
name : "Capital",
field : "Capital",
width : "100%",
reorderable: false,
editable : true
}, {
label: "",
field: "Delete",
formatter: deleteButton
}],
rowSelector: '20px',
plugins: {
pagination: {
pageSizes: ["10", "25", "50", "100"],
description: true,
sizeSwitch: true,
pageStepper: true,
gotoButton: true,
maxPageStep: 5,
position: "bottom"
}
}
}, "grid");
grid.startup();
删除按钮脚本如下所示:
function deleteButton(id) {
var dBtn1 = "<div data-dojo-type='dijit/form/Button'>";
var dBtn2 = "<img src='delete.png' onclick='javascript:removeItem()' alt='" + id + "'";
dBtn = dBtn1 + dBtn2 + " width='18' height='18'></div>";
return dBtn;
}
我的问题是:每一行的末尾都会有一个删除按钮,单击该按钮后,同一行将被删除
有人能告诉我如何根据行索引删除行吗
如果要以编程方式添加或删除数据,只需
将其从基础数据存储中添加或删除。因为DataGrid是
“DataStoreAware”,将反映对存储所做的更改
在数据网格中自动执行
dojox/grid有一个属性选择和方法getSelected来获取所选项目。在文档中的示例中,它以以下方式实现:
var items = grid5.selection.getSelected();
if(items.length){
// Iterate through the list of selected items.
// The current item is available in the variable
// "selectedItem" within the following function:
dojo.forEach(items, function(selectedItem){
if(selectedItem !== null){
// Delete the item from the data store:
store3.deleteItem(selectedItem);
} // end if
}); // end forEach
} // end if
希望能有所帮助。这是解决方案。单击按钮后将运行的方法序列是removeItem和onRowClick事件 1> 单击按钮时设置deleteButtonFlag
function removeItem() {
deleteButtonGFlag = true;
}
2> 删除项目
dojo.connect(grid, "onRowClick", function(e) {
if (deleteButtonGFlag) {
dataStore.fetch({
query: {},
onComplete: function(items) {
var item = items[e.rowIndex];
dataStore.deleteItem(item);
dataStore.save();
deleteButtonGFlag = false;
}
});
}
});
@Manjunatha Muniyappa您有什么解决方案吗?实际上,这个解决方案对ItemFileWriteStore非常有效,但对ObjectStore不起作用。您知道如何在单击按钮时获取行索引吗。