我刚刚开始使用jqGrid,我想使用自定义删除按钮删除行。我正在使用下面的代码段:
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值未定义。 如何使用相同的结构删除行?
答案 0 :(得分:10)
您可以使用
删除行$('#editDataGridList').jqGrid('delRowData',rowid);
答案 1 :(得分:3)
我找到了解决自己问题的方法。
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)' />";
}
我只是将此作为参数传递给按钮onclick事件,并且在函数调用中,这具有我需要的所有属性,但最重要的一个是按钮id,即按钮行的面试ID属于。
答案 2 :(得分:1)
变量cellValue
未在与删除格式化程序相同的范围内定义。你可以尝试两件事:
rowId
参数传递给删除功能,而不是cellValue
。onSelectRow
处理程序中所选行的ID值。