我正在使用表单来添加和编辑记录。添加时,我希望可以编辑两列。编辑时,我不希望用户编辑这些列中的值,但我仍然希望在表单上显示数据。 我正在使用beforeShowForm将禁用的编辑选项设置为禁用:false表示添加和禁用:true表示编辑。 我第一次打开添加表单时,一切正常。当我再次打开它时,两列被禁用。如果我打开已禁用列的编辑表单,然后返回添加,则列可再次编辑。 请提供有关如何使表单始终可编辑的信息。我到目前为止所做的一切都不起作用。 谢谢。
.jqGrid('navGrid','#pager',{add:true, edit:true, del:true},
{//add option
beforeShowForm: function(formid) {
$(this).jqGrid('setColProp', 'messageId', {editoptions:{disabled:false}});
$(this).jqGrid('setColProp', 'messageSubId', {editoptions:{disabled:false}});
}
},
{//edit option
beforeShowForm: function(formid) {
$(this).jqGrid('setColProp', 'messageId', {editoptions:{disabled:true}});
$(this).jqGrid('setColProp', 'messageSubId', {editoptions:{disabled:true}});
}
},
{width: 450}, {width: 450});
这是网格的编辑部分。
jQuery.extend(jQuery.jgrid.edit, {
ajaxEditOptions: { contentType: "application/json"},
savekey: [true, 13],
closeAfterAdd: true,
recreateForm: true,
closeOnEscape: true,
modal: true,
serializeEditData: function (postData) {
postData.messageClassId = currentVal;
return JSON.stringify(postData);
},
afterSubmit: function (response, postdata) {
$("#msgAdmin").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
return [true,'']; // No error
},
beforeSubmit: function(postdata, formid) {
// Form field validations
afterComplete : function(response, postdata, formid) {
buildGrid();
},
errorTextFormat: function (response) {
if (response.status != '200') {
return 'Error: ' + response.responseText;
}
else {
return 'Data Saved!';
}
return [true,'']; // no error
}
});