jqGrid ligne(s) suppression

J'ai un bouton permet de supprimer une ligne si vérifié que les appels à la fonction intégrée 'delRowData'. Assez Simple jusqu'à ce que vous souhaitez supprimer un tableau de lignes/plusieurs lignes (comme dans la variable intégrée 'selarrrow'). Quelqu'un aurait-il une meilleure réponse que l'horrible boue je suis venu avec (eg. modification de base jqGrid code)??

Voici mon code:

 $("#deleteButton").cliquez sur(function(){ 
var gr = jQuery("#myGrid").jqGrid('getGridParam','selarrrow'); 
var su=jQuery("#myGrid").jqGrid('delRowData',gr.toString()); 
(su) ? ": alert("Déjà supprimé ou non dans la liste"); 
}); 

et maintenant, pour la vraiment méchant partie de modifier le code de base dans jquery.jqGrid.min.js:

delRowData:function(f){
for(var m=0,max=f.length;m<max;m++){
    var j=false,i,c;
    this.each(function(){
        var e=this;
        if(i=e.rows.namedItem(f[m])){
            b(i).remove();
            e.p.records--;
            e.p.reccount--;
            e.updatepager(true,false);
            j=true;
            if(e.p.multiselect){
                c=b.inArray(f[m],e.p.selarrrow);
                c!=-1&&e.p.selarrrow.splice(c,1)
            }
            if(f==e.p.selrow)e.p.selrow=null
        }else return false;
        if(e.p.datatype=="local"){
            var k=e.p._index[f[m]];
            if(typeof k!="undefined"){
                e.p.data.splice(k,1);
                e.refreshIndex()
            }
        }
    });
}
        /*if(e.p.altRows===true&&j){
            var n=e.p.altclass;b(e.rows).each(function(a){
                a%2==1?b(this).addClass(n):b(this).removeClass(n)
            })
        }*/

    return j
}

Est-il une meilleure façon de le faire?

/* De nouveaux détails **/

Donc, même si on itère sur la jqGrid tableau "selarrrow" et d'enlever les lignes une par une tout en utilisant jqGrid par défaut de 'delRowData fonction:

$("#deleteButton").cliquez sur(function(){ 
$.chaque($("#myGrid").jqGrid('getGridParam','selarrrow'), function(index, valeur) { 
console.log($("#myGrid").jqGrid('getGridParam','selarrrow')); 
if ($("#myGrid").jqGrid('delRowData', valeur)) { 
console.log($("#myGrid").jqGrid('getGridParam','selarrrow')); 
console.log(valeur); 
} 
else{ 
console.log($("#myGrid").jqGrid('getGridParam','selarrrow')); 
console.log(valeur); 
} 
}); 
}); 

vous verrez le code ne fonctionne pas correctement et nous devons revenir pour regarder la jqGrid de base-code de la fonction de "delRowData'. Le problème réside maintenant avec la façon dont il aborde le tableau. Voici la fonction de l'onu-compacte:

delRowData:fonction(f){ 
var j=false,i,c; 
c'.each(function(){ 
var e=ce; 
si(i=e.les lignes.namedItem(f)){ 
b(i).remove(); 
e.p.enregistrements--; 
e.p.reccount--; 
e.updatepager(true,false); 
j=true; 
si(e.p.multiselect){ 
c=b.inArray(f,e.p.selarrrow); 
//c!=-1&&e.p.selarrrow.splice(c,1) 
} 
si(f=e.p.selrow) 
e.p.selrow=null 
}else 
return false; 
si(e.p.datatype=="local"){ 
var k=e.p._index[f]; 
if(typeof k!="undefined"){ 
e.p.les données.splice(k,1); 
e.refreshIndex() 
} 
} 
si(e.p.altRows===true&&j){ 
var n=e.p.altclass; 
b e.les lignes).each(function(a){ 
a%2==1?b(cette).addClass(n):b(cette).removeClass(n) 
}) 
} 
}); 
retour j 
} 

Le problème, c'est le commentaire sur la ligne dans le milieu de la fonction. Je voulais vraiment éviter le piratage de base de code, mais il semble que vous avez à faire sauf si vous avez une meilleure idée.