2010-07-29 59 views
4

我试图在jqgrid上使用表单编辑。当数据发送到网络服务器时,我想要在get/post数据中发送额外的字段。jqGrid:发送编辑数据

听起来像editData是我想要使用的。我如何将它钩入导航栏?

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

回答

10

要添加将数据添加/编辑过程中的形式编辑,你可以使用editData发送额外的参数:

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

而且您的施工与jQuery('#ReferenceGrid').attr('role')看起来有点怪。可能你在我的旧建议How to filter the jqGrid data NOT using the built in search/filter box中找到同样问题的解决方案。我建议你使用postData作为一个功能:使用

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

,而不是

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