0

当在 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

谢谢

4

1 回答 1

0

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

例如,只需尝试演示。它使用formatter: "actions"您需要的。您可以验证它是否像您需要的那样工作。

于 2015-03-13T10:32:18.500 回答