Как удалить строки в jqgrid



Я только начал использовать jqGrid,и я хочу удалить строки с помощью пользовательской кнопки delete. Я использую приведенный ниже фрагмент кода:



try {
var cellValue;
var id;
jQuery("#editDataGridList").jqGrid({
datatype: "local",
width: 900,
height: 270,
colNames: ['Action', 'Interview id', 'Date of observation', 'Name of enumerator'],
onSelectRow: function (id) {
debugger;
var rowData = jQuery(this).getRowData(id);
cellValue = rowData['InterviewId'];
},
colModel: [
{
name: 'actions', index: 'InterviewId', sortable: false,
formatter: function (rowId, cellval, colpos, rwdat, _act) {

return "<input type='button' id='btnid' value='delete' class='btn' onClick='deleteRecords(" + cellValue + ");' />";

}
},
{ name: 'InterviewId', index: 'InterviewId' },
{ name: 'Date', index: 'Date' },
{ name: 'NameOfEnum', index: 'NameOfEnum' }
],

multiselect: false,
caption: "Edit already entered data"
});
}
catch (e) {
alert(e.message);
}


Приведенный выше код использует этот вызов функции для передачи выбранного значения строки для удаления



function deleteRecords(rowData) {
alert(rowData);
}


К сожалению, значение rowData не определено.
Как я могу использовать ту же структуру для удаления строк?

588   3  

3 ответов:

Вы можете удалить строку, используя

$('#editDataGridList').jqGrid('delRowData',rowid);

Я нашел решение своей собственной проблемы.

formatter: function (rowId, cellval, colpos, rwdat, _act) {
       var rowInterviewId = colpos.InterviewId.toString();
       return "<input type='button' id='" + rowInterviewId + "' value='delete' class='btn'
       onClick='deleteRecords(this)' />";    
}

Я просто передаю это в качестве параметра событию button onclick, и при вызове функции это имеет все свойства, которые мне нужны от кнопки, но самым важным из них является идентификатор кнопки, который является идентификатором интервью строки, к которой принадлежит кнопка.

Переменная cellValue не определена в той же области, что и форматер delete. Вы можете попробовать две вещи:

  1. передайте аргумент rowId из вашего модуля форматирования в функцию delete вместо cellValue.
  2. объявите переменную вне области действия обеих функций, а затем установите для нее значение ID выбранной строки в обработчике onSelectRow.

Comments

    Ничего не найдено.