首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postData没有传递任何参数!

postData没有传递任何参数!
EN

Stack Overflow用户
提问于 2011-04-28 05:34:07
回答 1查看 6.2K关注 0票数 2

我在firebug中看不到任何传递给服务器的参数值。下面是代码。

代码语言:javascript
复制
//BuyBackGridInit() start

function BuyBackGridInit(tabID){


        $('table[id$="'+tabID+'_BuyBackGrid"]').jqGrid({   
            url :'/Controls/Advertiser/BuyBackControlNew.ascx.ashx?action=getBuyBackData',
            datatype: 'json',
            mtype: 'POST', 
            height:'100%',
            width:'100%',
            colNames: result.colNamesData, 
            colModel: result.colModelData,
            postData: {
              advertiserID: function() { return $('#advertiser_id').text(); },
              CampaignsDdlSelectedValue: function() { return $('select[id$="CampaignDdl"] option:selected').val(); },
              startDate: function() { return $('input[id$="'+tabID+'_FromCalBuyBack_CalendarTbx"] ').val(); },
              endDate: function() { return $('input[id$="'+tabID+'_ToCalBuyBack_CalendarTbx"] ').val(); }
            },
            rowNum : 100,
            shrinkToFit :false,
            altRows: true,
            altclass:'altRow',
            autowidth: true,
            multiselect: true,
            gridComplete:function (){
              var recs = parseInt( $('table[id$="'+tabID+'_BuyBackGrid"]').getGridParam("records"),10);
              if (recs == 0){ 
                  $('div[id$="'+tabID+'_NoDataFoundBuyBackdiv"]').show();
                  $('input[id$="AddToCartBtn"]').hide();
                  $('input[id$="BuyBackDownloadBtn"]').hide();
              }
              else {
                  $('div[id$="'+tabID+'_NoDataFoundBuyBackdiv"]').hide();
                  $('input[id$="AddToCartBtn"]').show();
                  $('input[id$="BuyBackDownloadBtn"]').show();
              }
            },
            serializeGridData: function (data){ 
               return $.toJSON(data);   
            }
        });//end of jQuery("#BuyBackGrid").jqGrid()

}//BuyBackGridInit() End

谢谢,

一个

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-28 06:23:42

您当前实现的serializeGridData只需从postData中删除所有函数参数即可。因此,您应该在serializeGridData内部扩展data参数,而不是使用postData。另一种方法是将serializeGridData修改为:

代码语言:javascript
复制
serializeGridData: function (data){
    var propertyName, propertyValue, dataToSend = {};
    for (propertyName in data) {
        if (data.hasOwnProperty(propertyName)) {
            propertyValue = data[propertyName];
            if ($.isFunction(propertyValue)) {
                dataToSend[propertyName] = propertyValue();
            } else {
                dataToSend[propertyName] = propertyValue
            }
        }
   }
   return JSON.stringify(dataToSend);
}

在上面的代码中,我们枚举所有属性并显式调用所有函数。此外,我更喜欢使用json2.jsJSON.stringify函数。该函数将在许多web浏览器中原生实现。

请参阅演示here

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5810885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档