0

我有一个简单的网格,它有 4 列来自数据库:ID、名称、CreationDate、ModificationDate。所有这些字段都会显示,但只有名称是可编辑的。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>

任何帮助将不胜感激谢谢 Jaime

4

1 回答 1

0

有很多方法可以解决问题。

最简单的方法之一是使其dep_creado_el可编辑。在这种情况下,编辑/添加表单将具有包含数据的行。您可以将行隐藏afterShowForm在内部或beforeShowForm回调中。因此,您可以执行与答案相同的操作:

beforeShowForm: function () {
    $('#tr_dep_creado_el').hide();
}

另一种方法是在onclickSubmit回调或serializeEditData.

于 2013-05-28T19:08:30.160 回答