我有一个简单的网格,有4列来自数据库:ID,Name,CreationDate,ModificationDate。显示所有这些字段,但只有Name是可编辑的。 ID和日期显示为纯文本。
我遇到的问题是修改记录的时间。仅将名称字段传递到服务器端。 CreationDate作为默认值发送为01/01/0001,而不是当前具有的值。
这是我的剧本:
<script type="text/javascript">
$(function () {
$("#departamentos").jqGrid({
url: "@Url.Action("List")",
datatype: "json",
mtype: "GET",
colNames: ["@Html.DisplayNameFor(model => model.dep_id)",
"@Html.DisplayNameFor(model => model.dep_nombre)",
"@Html.DisplayNameFor(model => model.dep_creado_el)",
"@Html.DisplayNameFor(model => model.dep_modificado_el)",
" "],
colModel: [
{ name: "dep_id", index: "dep_id", key : true, sortable:false, editable:false, editoptions:{readonly:true,size:10}, width: 90 },
{ name: "dep_nombre", index: "dep_nombre", editable:true, width: 250 },
{ name: "dep_creado_el", index: "dep_creado_el", width: 100, align: "center", formatter: "date" },
{ name: "dep_modificado_el", index: "dep_modificado_el", width: 100, align: "center", formatter: "date" },
{ name: 'acciones', width: 58, fixed: true, sortable: false, resize: false, formatter: 'actions', formatoptions: { keys: true } }
],
jsonReader: {
repeatitems: false
},
pager: "#pager",
rowNum: 10,
rowList: [10, 20, 30],
sortname: "dep_nombre",
sortorder: "asc",
viewrecords: true,
gridview: true,
autoencode: true,
multiselect: true,
caption: "Departamentos",
editurl: "@Url.Action("AjaxEdit")",
});
$("#departamentos").jqGrid('navGrid', '#pager', { edit: true, add: true, del: true });
$.jgrid.edit.addCaption = "Agregar Departamento";
$.jgrid.edit.editCaption = "Modificar Departamento";
$.jgrid.edit.saveData = "¡El departamento fue modificado! ¿Almacena los cambios?";
$.jgrid.formatter.date.newformat = 'd-m-Y H:i';
});
</script>
任何帮助将不胜感激 谢谢 海梅
答案 0 :(得分:0)
有很多方法可以解决这个问题。
最简单的方法之一是使dep_creado_el
可编辑。如果编辑/添加表单将包含带有数据的行。您可以隐藏 afterShowForm
或beforeShowForm
回调中的行。所以你可以像the answer中那样做:
beforeShowForm: function () {
$('#tr_dep_creado_el').hide();
}
另一种方法是扩展onclickSubmit
回调或serializeEditData
内的数据。