.setPostData jqgrid не работает - PullRequest
0 голосов
/ 27 апреля 2011

Я хочу перезагрузить jqgrid с новыми параметрами. Я использую .setPostData (). Пожалуйста, посмотрите на мой код ниже. Это всегда дает мне ошибку в .setPostData (). Я что-то упустил? формат

$('table[id$="'+tabID+'_BBGrid"]').jqGrid({ 
    url:'/Controls/Advertiser/BBControlNew.ascx.ashx?action=getBBData&advertiserID=' + $('#advertiser_id').text() + '&startDate=' + $('input[id$="' + tabID +
 '_FromCalBuyBack_CalendarTbx"] ').val() + '&endDate=' + $('input[id$="' + tabID + '_ToCalBuyBack_CalendarTbx"] ').val(),
    datatype: 'json',
    mtype: 'POST', 
    height:'100%',
    width:'100%',
    colNames: result.colNamesData, 
    colModel: result.colModelData,
    //pager: '#RequestLeadspager', 
    rowNum : 100,
    shrinkToFit :false,
...........
function  BuyBackGridReload(tabID,NoSelectedValues)
{
    $('table[id$="'+tabID+'_BuyBackGrid"]').setPostData({
        advertiserID:$('#advertiser_id').text(),
        CampaignsDdlSelectedValue: $('select[id$="CampaignDdl"] option:selected').val(),
        startDate: $('input[id$="'+tabID+'_FromCalBuyBack_CalendarTbx"] ').val(),
        endDate: $('input[id$="'+tabID+'_ToCalBuyBack_CalendarTbx"] ').val(),
        NoSelectedValue: NoSelectedValues
    }).trigger("reloadGrid");
};

У меня есть поиск btn. Я получаю значения для NoSelectedValues ​​внутри этого поиска btn. Вот код для нажатия кнопки. $ ( 'Вход [идентификатор $ = " '+ табетический +' _ BuyBackSearchBtn"]'). Нажмите (функция () {

var values = [];

$('div[id$="' + tabID + '_SelectedBuyBackFilterDiv"] .children').each(function (){
     $(this).find('option').each(function (){
       var attr = $(this).attr('rel');
       if (typeof attr == 'undefined' ){
         values.push($(this).val());
       }
     });
});
BuyBackGridReload(tabID,values);

}); // Завершить поиск нажми

ОШИБКА:

$ ("table [id $ = \" "+ tabID + "_BuyBackGrid \"] ") setPostData ({AdvertiserId.: $ ( "# Advertiser_id"). Текст (), CampaignsDdlSelectedValue: $ ( "Выберите [идентификатор $ = \" CampaignDdl \ "] option: selected "). val (), startDate: $ ("input [id $ = \" "+ tabID + "_FromCalBuyBack_CalendarTbx \"] ") .val (), endDate: $ (" input [id $ = \ "" + tabID + "_ToCalBuyBack_CalendarTbx \"] ") .val (), NoSelectedValue: NoSelectedValues}) не определено

Я также не хочу передавать в качестве строки запроса новые параметры.

Есть предложения?

Спасибо

A * * тысяча двадцать-один

1 Ответ

0 голосов
/ 27 апреля 2011

Вам не нужно использовать setPostData для установки параметра postData. Вместо этого вы можете использовать функцию setGridParam. См. здесь примеров.

Полагаю, если вы будете использовать параметр postData, который содержит функции, вам вообще не потребуется устанавливать какой-либо параметр postData. Параметры url и postData в jqGrid могут выглядеть как

url:'/Controls/Advertiser/BBControlNew.ascx.ashx",
postData: {
    action: "getBBData"
    advertiserID: function() { return $('#advertiser_id').text(); },
    startDate: function() { return $('input[id$="' + tabID + '_FromCalBuyBack_CalendarTbx"] ').val(); },
    endDate: function() { return $('input[id$="' + tabID + '_ToCalBuyBack_CalendarTbx"] ').val(); },
    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(); },
    NoSelectedValue: function() { return NoSelectedValues; }
}

Переменные tabID и NoSelectedValues должны быть определены ранее. При каждой перезагрузке сетки будет вызываться функция из каждого свойства postData, и вы можете прочитать текущие значения из соответствующих элементов управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...