EDIT
Хорошо, получается, что вы можете определить пользовательский элемент как edittype . Для вашей ситуации вы должны сделать следующее:
colModel :[
{label: 'Game ID', name: 'game_id', editable:true, edittype:'custom',editoptions:{custom_element:myelem,custom_value:myval}},
{label: 'Component ID', name: 'component_id', editable:true, edittype:'custom',editoptions:{custom_element:myelem,custom_value:myval} },
{label: 'Table ID', name: 'table_id', editable:true, edittype:'custom',editoptions:{custom_element:myelem,custom_value:myval}}
]
Тогда вы бы определили myelem
и myval
следующим образом:
function myelem(value,options){
return $('<input type="text" value="'+value+'" disabled="disabled"/>');
}
function myval(elem){
return elem.val();
}
Это создаст отключенное текстовое поле и выглядит менее хакерским, чем afterShowForm
.
ORIGINAL
Если вы используете элемент управления формы редактирования (не встроенное редактирование), похоже, что вы должны предоставить функцию afterShowForm (прокрутите вниз до раздела События). См. этот вопрос .
Похоже, вы хотите, чтобы столбцы отображались на виде, но не были доступны для редактирования. Если вы установите editable:true
, то пользователь может редактировать поле, несмотря ни на что. В конечном итоге вам придется отключить / установить элемент формы на скрытый, чтобы пользователь не мог изменить его значение. afterShowForm
будет выглядеть примерно так:
afterShowForm: function(eparams){
// change the selector appropriately
$('#jqGrid input[name=game_id]').attr('type','hidden');
// or $('#jqGrid input[name=game_id]').attr('disabled','disabled');
}