我可以插入新行并编辑它们,但是我无法删除,因为显然,只有在选择了行并处于编辑模式时,这些值才会传递给代码隐藏。
插入/编辑/删除类位于C#
的代码隐藏中这是执行删除的js代码:
var selectedRow;
// deletes the selected row
function doDelete() {
var grid = $('#Grid').data('tGrid');
if (selectedRow) {
grid.deleteRow($(selectedRow));
}
return false;
}
这是执行编辑的代码:
function beginInsert() {
var grid = $('#Grid').data('tGrid');
// enter insert mode
grid.addRow();
// update the selected row
selectedRow = $('#Grid .t-grid-new-row');
// show the 'Insert' and 'Cancel' buttons and hide the 'Delete', 'Create' and 'Edit' buttons
toggleInsertButtons(true);
return false;
}
function endInsert() {
var grid = $('#Grid').data('tGrid');
// perform the insertion - call the _Insert action method
grid.insertRow($(selectedRow));
// hide the 'Insert' and 'Cancel' buttons and show the 'Delete', 'Create' and 'Edit' buttons
toggleInsertButtons(false);
return false;
}
答案 0 :(得分:0)
要删除行,您需要告诉网格小部件它应删除哪一行,对吧?您的代码正在使用selectedRow
变量,该变量填充在(可能)编辑事件中。这就是为什么你只能在编辑时删除。
要随时删除所选行,只需同时使用select
和removeRow
:
function doDelete() {
var grid = $('#Grid').data('kendoGrid');
grid.deleteRow(grid.select());
}
现在,如果要删除未选中的行,则必须选择它并传递给removeRow
方法:
function doDelete() {
var grid = $('#Grid').data('kendoGrid');
var row = $(grid.tbody).find("tr:first"); // Selects grid's first row
grid.removeRow(row);
}