Ich habe diesen Code für meine jqgrid. Ich konnte eine cellEdit
erreichen. Aber ich möchte hier erreichen, ist das ganze row
zu bearbeiten. Da die cellEdit
viel Zeit in Anspruch nimmt, muss sie auf die Zelle klicken, damit sie bearbeitet werden kann.Wie mache ich eine inline bearbeitbare Zeile in jqgrid?
function fnGridCorrected(StartDate, EndDate) {
var url1 = '../Request/_getCorrection?startDate=' + StartDate + '&endDate=' + EndDate;
$("#CorrectedList").jqGrid({
url: url1,
datatype: 'json',
mtype: 'POST',
colNames: ['rowId', 'Id', 'Date', 'Time In1', 'Time Out1', 'Time In2', 'Time Out2', 'Time In1', 'Time Out1', 'Time In2', 'Time Out2', 'Remarks', 'Status', 'Approved By', 'Date Request', 'Date Approved'],
colModel: [
{ name: 'rowId', index: 'rowId', hidden: true, width: 20 },
{ name: 'CorrectedId', index: 'CorrectedId', hidden: true, editable: true, sortable: false, width: 20, align: 'center' },
{ name: 'Date', index: 'Date', hidden: false, editable: true, sortable: false, width: 85, align: 'center' },
{ name: 'In1', index: 'In1', hidden: false, editable: true, sortable: false, width: 80, align: 'center' },
{ name: 'Out1', index: 'Out1', hidden: false, editable: true, sortable: false, width: 80, align: 'center' },
{ name: 'In2', index: 'In2', hidden: false, editable: true, sortable: false, width: 80, align: 'center' },
{ name: 'Out2', index: 'Out2', editable: true, hidde: false, width: 80, align: 'center' },
{ name: 'CorrectedIn1', index: 'CorrectedIn1', hidden: false, editable: true, sortable: false, width: 80, align: 'center' },
{ name: 'CorrectedOut1', index: 'CorrectedOut1', hidden: false, editable: true, sortable: false, width: 80, align: 'center' },
{ name: 'CorrectedIn2', index: 'CorrectedIn2', hidden: false, editable: true, sortable: false, width: 80, align: 'center' },
{ name: 'CorrectedOut2', index: 'CorrectedOut2', editable: true, hidde: false, width: 80, align: 'center' },
{ name: 'remarks', index: 'remarks', editable: true, hidde: false, width: 85, align: 'center' },
{ name: 'Status', index: 'Status', editable: true, hidde: false, width: 85, align: 'center' },
{ name: 'ApprovedBy', index: 'ApprovedBy', editable: true, hidde: false, width: 95, align: 'center' },
{ name: 'ReqDate', index: 'ReqDate', editable: true, hidde: false, width: 85, align: 'center' },
{ name: 'ApprovedDate', index: 'ApprovedDate', editable: true, hidde: false, width: 90, align: 'center' }
],
pager: $('#CorrectedPager'),
rowNum: 5,
rowList: [5, 10, 20],
sortname: 'Id',
sortorder: 'asc',
viewrecords: true,
autowidth: true,
shrinkToFit: false,
imgpath: '/Content/themes/redmond/images/',
height: '100%',
cellEdit: true,
cellsubmit: 'clientArray',
//editurl: 'clientArray',
onSelectRow: function (id) {
var objRowData = jQuery("#CorrectedList").getRowData(id);
},
loadComplete: function() {
var ids = jQuery("#CorrectedList").getDataIDs();
var len = ids.length,
newLine;
if (len < 5) {
AddNewRowToGrid(len, "#CorrectedList");
}
}
});
$("#CorrectedList").jqGrid('setGroupHeaders', {
useColSpanStyle: true,
groupHeaders: [
{ startColumnName: 'Date', numberOfColumns: 1, titleText: '' },
{ startColumnName: 'In1', numberOfColumns: 4, titleText: 'Actual Time' },
{ startColumnName: 'CorrectedIn1', numberOfColumns: 4, titleText: 'Correction', columnWidth: 500 }
]
});
}
Ich versuche dies auch zwei cellsubmit: 'clientArray'
und rowEdit: true
aber es wird nicht die Zeile aktiviert. Habe ich in meiner Inline-Zeile falsch gemacht ?. BTW Ich verwende jqgrid 4.4.4