I think you have two options. I personally handled this requirement by defining my own custom edit options.
Ex:
...
editable: true, edittype: 'custom', editoptions: { custom_element: readOnlyTextBox, custom_value: readOnlyTextBoxValue }
...
function readOnlyTextBox(value, options) {
var el = document.createElement("input");
el.type = "text";
el.value = value;
el.disabled = true; // "disabled";
return el;
} //function readOnlyTextBox(value, options) {
function readOnlyTextBoxValue(elem, operation, value) {
//console.log('Elem: ' + elem + ' Operation: ' + operation + ' Passed Value: ' + value + ' Value: ' + $(elem).val());
if (operation === 'get') {
return $(elem).val();
} else if (operation === 'set') {
$(elem).val(value);
}
} //function readOnlyTextBoxValue(elem, operation, value) {
The other option would be to define your own edit form handler and pass in the extra row item value:
....
ondblClickRow: function (rowid) {
EditCollectionItem(rowid, this)
}, //ondblClickRow
....
function EditCollectionItem (rowid, grid){
$(grid).jqGrid('editGridRow', rowid,
{
viewPagerButtons: false,
editData: { ExtraDataKey: ExtraDataValue },
afterShowForm: function (formid) {
}, //afterShowForm
afterComplete: function (response) {
} //afterComplete
}); //$this.jqGrid('editGridRow
}//function EditCollectionItem (rowid, grid){