当在jqgrid行中进行内联编辑时,它允许执行但是,再次单击另一行然后,它不会取消之前的行,并且两者都将保持编辑模式。 我需要它取消最后一个,如果用户单击时单击要编辑的新行,则应打开单行进行编辑。 (如果用户点击下一行进行编辑,则应取消最后一行,仅打开新行进行编辑)。
问题在这里,它切换到要编辑的新行,但是"编辑"和"取消"最后一行的按钮保持不变。因此,同时用户可以看到两个两行的编辑,取消按钮。
$("#SamplesGrdList").jqGrid({
url: '@Url.Action("ActionName", "Controller")/',
datatype: "json",
colNames: ['Category Name','ValueToChange','Edit'],
colModel: [
{ name: 'CategoryName', index: 'CategoryName', sortable: true, sorttype: 'text', width: 140, classes: 'bStyle' },
{
name: 'ValueToChange', index: 'ValueToChange', width: 82, align: "right", editable: true, editrules: { number: true, required: true, custom: true, custom_func: Deductions }, formatter: 'currency',
formatoptions: { decimalSeparator: ".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00', prefix: '$ ' },
editoptions: {
style: 'width:70px;', dataEvents: [
{
type: 'blur',
fn: function (e) {
CalculateDeductions($(this).val());// SOme DB Operation
}
}
]
}
},
{
name: 'act', index: 'act', width: 60, align: 'center', sortable: false, formatter: 'actions',
formatoptions: {
keys: false,
delbutton: false,
onEdit: function (rowid) {
},
onSuccess: function (jqXHR) {
$("#SamplesGrdList").trigger('reloadGrid');
return true;
},
onError: function (rowid, jqXHR, textStatus) {
},
afterSave: function (rowid) {
},
afterRestore: function (rowid) {
$("#SamplesGrdList").trigger('reloadGrid');
}
}
}
],
rowNum: 10, rowList: [10, 20, 30],
sortname: 'CategoryName',
shrinkToFit: true,
sortable: true,
viewrecords: true,
sortorder: "desc",
footerrow: true,
width: '780',
height: '100%',
jsonReader:
{
root: 'List',
page: 'Page',
total: 'TotalPages',
records: 'TotalCount',
repeatitems: false,
id: 'Id'
},
editurl: '@Url.Action("ActionName", "ControllerName")'
});
请指导如何解决此问题,以便一次可以单行编辑/保存/取消。
注意:jqgrid版本是Jquery.jqgrid-4.1.2.min.js
由于
答案 0 :(得分:0)
我认为你唯一的问题是:使用非常旧版本的jqGrid 4.1.2。我建议您更新为jqGrid 4.7或free jqGrid 4.8。
例如,试试the demo。它使用您需要的formatter: "actions"
。您可以验证它是否符合您的需要。