2017-12-18 10 views
-1

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

Antwort

0

Ich endlich eine Antwort auf meine Frage gefunden. In onSelectrow Funktion füge ich einfach den Code jQuery('#myGrid').editRow(id, true); hinzu, um die ganze Reihe bearbeitbar zu machen.

Verwandte Themen