在Jqgrid的Inine编辑中,无法取消先前的编辑事件并切换到新事件

时间:2015-03-13 10:08:16

标签: jqgrid jqgrid-asp.net jqgrid-formatter mvcjqgrid jqgrid-inlinenav

当在jqgrid行中进行内联编辑时,它允许执行但是,再次单击另一行然后,它不会取消之前的行,并且两者都将保持编辑模式。 我需要它取消最后一个,如果用户单击时单击要编辑的新行,则应打开单行进行编辑。 (如果用户点击下一行进行编辑,则应取消最后一行,仅打开新行进行编辑)。

问题在这里,它切换到要编辑的新行,但是"编辑"和"取消"最后一行的按钮保持不变。因此,同时用户可以看到两个两行的编辑,取消按钮。

       $("#SamplesGrdList").jqGrid({
        url: '@Url.Action("ActionName", "Controller")/',
        datatype: "json",
        colNames: ['Category Name','ValueToChange','Edit'],
        colModel: [
            { name: 'CategoryName', index: 'CategoryName', sortable: true, sorttype: 'text', width: 140, classes: 'bStyle' },
            {
                name: 'ValueToChange', index: 'ValueToChange', width: 82, align: "right", editable: true, editrules: { number: true, required: true, custom: true, custom_func: Deductions }, formatter: 'currency',
                formatoptions: { decimalSeparator: ".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00', prefix: '$ ' },
                editoptions: {
                    style: 'width:70px;', dataEvents: [
                       {
                           type: 'blur',
                           fn: function (e) {
                               CalculateDeductions($(this).val());// SOme DB Operation

                           }
                       }
                    ]
                }
            },
            {
                name: 'act', index: 'act', width: 60, align: 'center', sortable: false, formatter: 'actions',
                formatoptions: {
                    keys: false,
                    delbutton: false,
                    onEdit: function (rowid) {
                    },
                    onSuccess: function (jqXHR) {
                        $("#SamplesGrdList").trigger('reloadGrid');
                        return true;
                    },
                    onError: function (rowid, jqXHR, textStatus) {

                    },
                    afterSave: function (rowid) {
                    },
                    afterRestore: function (rowid) {
                        $("#SamplesGrdList").trigger('reloadGrid');   
                    }
                }
            }
        ],
        rowNum: 10, rowList: [10, 20, 30],
        sortname: 'CategoryName',
        shrinkToFit: true,
        sortable: true,
        viewrecords: true,
        sortorder: "desc",
        footerrow: true,
        width: '780',
        height: '100%',
        jsonReader:
            {
                root: 'List',
                page: 'Page',
                total: 'TotalPages',
                records: 'TotalCount',
                repeatitems: false,
                id: 'Id'
            },

        editurl: '@Url.Action("ActionName", "ControllerName")'
    }); 

请指导如何解决此问题,以便一次可以单行编辑/保存/取消。

注意:jqgrid版本是Jquery.jqgrid-4.1.2.min.js

由于

1 个答案:

答案 0 :(得分:0)

我认为你唯一的问题是:使用非常旧版本的jqGrid 4.1.2。我建议您更新为jqGrid 4.7free jqGrid 4.8

例如,试试the demo。它使用您需要的formatter: "actions"。您可以验证它是否符合您的需要。