2014-08-27 7 views
0

Je crée un jqgrid en créant une ligne avec 2 colonnes avec une liste déroulante. Les listes déroulantes sont remplies en utilisant l'appel ajax. Mon exigence est que je veux répliquer cette ligne en cliquant sur le bouton AJOUTER dans l'interface utilisateur. Par exemple pour l'instant une ligne arrive dans jqgrid, après avoir cliqué sur le bouton AJOUTER une nouvelle ligne avec le même contenu sans rafraîchir la valeur modifiée dans la première rangée devrait être affichée. Y'a-t'il un quelconque moyen d'y arriver? Mon code jqGrid estRépliquer les données dans JQGrid

$("#tbl").jqGrid('GridUnload'); 
$("#tbl").jqGrid(
     { 
      url : "/searchCriteria.do", 
      datatype : 'json', 
      colModel : 
      [ 
       {name : "test1",label : "TEST1", search : false,cellEdit:true, editable: true,edittype:"select",width:150 ,formatter: createDropDown,title:false}, 
       {name : "test2",label : "TEST2", search : false,cellEdit:true, editable: true,edittype:"select",width:150 ,formatter: createDropDown,title:false} 
      ], 
      viewrecords: true, 
      loadonce:true, 
      width: 1000, 
      multiselect : true 
     }); 
}); 

Répondre

1

Vous pouvez utiliser une combinaison des méthodes getLocalRow et addRowData pour atteindre votre fonctionnalité. Docs for these methods.

Disons que dans votre code HTML que vous avez un bouton:

<button id="add" type="button">ADD</button> 

Dans votre javascript vous pourriez avoir:

<script> 
$("#add").click(function(){ 
    var id_of_new_row = something; //you haven't specified which are the exact rows you'd like selected. 
    //you could use the getDataIDs method to get the row-IDs you're looking for 
    var new_row_data = $("#gridId").jqGrid('getLocalRow', id_of_new_row)); 
    $("#gridId").jqGrid('addRowData',id_of_new_row+1, new_row_data, "last"); 
    }); 
</script> 
+0

Merci beaucoup. Ce code a très bien fonctionné. – Neha