0

Lorsque vous modifiez en ligne dans jqgrid row, alors il permet de faire mais, cliquez à nouveau sur une autre ligne puis, il n'annule pas la ligne précédente et les deux resteront en mode d'édition. J'en ai besoin pour annuler le dernier si l'utilisateur a cliqué sur la nouvelle ligne pour éditer à un moment donné, une seule ligne devrait être ouverte pour l'édition. (si l'utilisateur clique sur la ligne suivante pour éditer, alors la dernière rangée devrait être annulée et la nouvelle rangée seulement devrait s'ouvrir pour être éditée).Inin edit de jqgrid, impossible d'annuler l'événement d'édition précédent et de passer au nouvel événement

Problème est ici, il passe à la nouvelle ligne pour modifier, mais "modifier" et "annuler" le bouton de la dernière rangée reste tel quel. Ainsi, en même temps, l'utilisateur peut voir deux éditer deux lignes, annuler les boutons.

 $("#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")' 
    }); 

S'il vous plaît guider comment résoudre ce donc, à la fois, la ligne unique est disponnible pour modifier/enregistrer/annuler.

Note: La version jqGrid est Jquery.jqgrid-4.1.2.min.js

Merci

Répondre

0

Je pense que le seul problème que vous avez: l'utilisation de très ancienne version jqGrid 4.1.2. Je vous recommande de mettre à jour à jqGrid 4.7 ou free jqGrid 4.8.

Essayez par exemple the demo par exemple. Il utilise formatter: "actions" dont vous avez besoin. Vous pouvez vérifier que cela fonctionne comme vous le souhaitez.