无法从Kendo Grid获取行值,除非它们处于编辑模式

时间:2016-09-29 18:15:24

标签: kendo-ui kendo-grid

我可以插入新行并编辑它们,但是我无法删除,因为显然,只有在选择了行并处于编辑模式时,这些值才会传递给代码隐藏。

插入/编辑/删除类位于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;
            }

1 个答案:

答案 0 :(得分:0)

要删除行,您需要告诉网格小部件它应删除哪一行,对吧?您的代码正在使用selectedRow变量,该变量填充在(可能)编辑事件中。这就是为什么你只能在编辑时删除。

要随时删除所选行,只需同时使用selectremoveRow

function doDelete() {
    var grid = $('#Grid').data('kendoGrid');
    grid.deleteRow(grid.select());
}

Demo

现在,如果要删除未选中的行,则必须选择它并传递给removeRow方法:

function doDelete() {
    var grid = $('#Grid').data('kendoGrid');
    var row = $(grid.tbody).find("tr:first"); // Selects grid's first row

    grid.removeRow(row);
}

Demo