尝试根据行索引找到为dojo EnhancedGrid删除行的答案。
请找到EnhancedGrid。
Add
删除按钮脚本在这里:
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();
这是我的问题:每行最后都有一个删除按钮,单击此按钮应该删除相同的行。
有人可以告诉我如何根据行索引删除行吗?
答案 0 :(得分:1)
如果您想以编程方式添加(删除)数据,您只需要 从底层数据存储添加(删除)它。因为DataGrid是 “DataStoreAware”,将对商店所做的更改进行反映 自动在DataGrid中。
https://dojotoolkit.org/reference-guide/1.10/dojox/grid/example_Adding_and_deleting_data.html
dojox / grid有一个属性selection
和方法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
希望它会有所帮助。
答案 1 :(得分:0)
这是解决方案。将在按钮上运行的方法序列是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;
}
});
}
});