我想在编辑对话框中添加几列是只读的,以便向用户显示他们正在编辑哪一行数据。所选行只会非常模糊地突出显示,因此用户很难分辨他们正在编辑哪一行数据。有没有办法将列添加到编辑模式并将它们设为只读?
这是我尝试过但没有一个能奏效的。也许有一些Javascript-ism,我不太正确,但我无法弄明白。
是否有人能够将列添加到只读的编辑模式中?
$("#prodTable").jqGrid('navGrid', '#pager',
{ edit: true, add: false, del: false, search: false, refresh:true },
{ // edit
beforeInitData : function(formid) {
console.log("beforeInitData formid: " + formid);
//$("#" + "serialNumber").prop('readonly',true);
//$("#prodTable_serialNumber").prop('readonly',true);
//$("#prodTable_serialNumber").attr('readonly',true);
//$("#jqgh_prodTable_serialNumber").attr('readonly',true);
//$("#jqgh_prodTable_serialNumber").prop('readonly',true);
$("#formid").prop('readonly',true);
}
}
答案 0 :(得分:0)
表单编辑模式不允许在编辑对话框中插入不可编辑的字段。这是因为使用内联编辑可以提供更多优势的原因之一。我喜欢使用双击开始内联编辑。如果可编辑列将“转换”为控件,如文本<input>
,下拉列表,复选框等。如果用户按 Enter 或“保存”按钮(取决于内联的形式)编辑哪一个使用)编辑的行将被保存。
如果您仍然喜欢使用表单编辑,则可以至少以两种不同的方式添加有关不可编辑列的必需信息。第一种方法是添加属性
editable: true, editoptions: {disabled: "disabled"}
到不可编辑的列。在控件显示方式,但禁用。为了更好地查看表单,您可以使用另外我在the answer中描述的方法。您应该从以下
的答案中修改beforeShowForm
回调
beforeShowForm: function ($form) {
$form.find(".FormElement[disabled]")
.addClass("ui-state-disabled")
.closest(".DataTD")
.prev(".CaptionTD")
.prop("disabled", true)
.addClass("ui-state-disabled")
}
自定义“添加/编辑”表单的另一种方法:手动添加任何所需信息。有关相应的代码示例和演示,请参阅the answer和this one。