2010-07-29 4 views
4

J'essaie d'utiliser l'édition de formulaire sur jqgrid. Lorsque les données sont envoyées au serveur Web, je souhaite qu'un champ supplémentaire soit envoyé dans les données get/post.jqGrid: envoyer des données d'édition

Cela ressemble à editData est ce que je veux utiliser. Comment puis-je accrocher ceci dans la barre de navigation?

<script type="text/javascript"> 
    $(document).ready(function(){ 
     if (jQuery('#ReferenceGrid').attr('role') == 'undefined' || jQuery('#ReferenceGrid').attr('role') == null) { 
      var lastSel; 
      jQuery('#ReferenceGrid').jqGrid({ 
       url: '/PlannedWorkOrder/Items/', 
       datatype: 'json', 
       postData: { referenceNumber: $('#reference').text() }, 
       colNames: ['Platinum Part Number', 'Quantity'], 
       colModel: [ 
        { name: 'PlatinumPartNumber', index: 'PlatinumPartNumber', width: 300, sortable: false, editable: true }, 
        { name: 'Quantity', index: 'Quantity', width: 300, sortable: false, editable: true, editrules:{integer: true} }, 
       ], 
       jsonReader: { 
        cell: "", 
        id: "PlatinumPartNumber", 
        repeatitems: false 
       }, 
       search:false, 
       viewrecords: true, 
       height: '100%', 
       sortorder: 'desc', 
       caption: 'Details', 
       altRows: true, 
       pager : '#gridpager', 
       pgbuttons: false, 
       pginput: false, 
       pgtext: false, 
       viewrecords: false, 
       editurl: '/PlannedWorkOrder/Item/' 
      }) 
      jQuery("#ReferenceGrid").navGrid('#gridpager', { add: true, edit: true, search: false }); 
     } 
     else { 
      $("#ReferenceGrid").setGridParam({ postData: { firstName: $('#Reference').val(), lastName: $('#Reference').val() } }); 
      $("#ReferenceGrid").trigger("reloadGrid") 
     } 
    }); 

</script> 

Répondre

10

Pour ajouter des paramètres supplémentaires qui seront envoyés lors de l'ajout/modification de données sous forme édition, vous pouvez utiliser editData:

jQuery('#ReferenceGrid').jqGrid('navGrid',"#gridpager", 
    {}, 
    {editData: {firstName: $('#Reference').val(), 
       lastName: $('#Reference').text()}}, // edit options 
    {editData: {firstName: $('#Reference').val(), 
       lastName: $('#Reference').text()}); // add options 

De plus votre construction avec jQuery('#ReferenceGrid').attr('role') semble un peu étrange. Probablement vous trouvez la solution du même problème dans ma vieille suggestion How to filter the jqGrid data NOT using the built in search/filter box. Je vous recommande d'utiliser postData en fonction: utiliser

postData: { referenceNumber: function() { return $('#reference').text(); } }, 

au lieu de

postData: { referenceNumber: $('#reference').text() }, 
Questions connexes