jqgrid - как добавить параметры в extraparam saveRow в режиме встроенного редактирования - PullRequest
1 голос
/ 02 февраля 2012

У меня есть строка:

var str = "it's a beautiful day";

Я передаю эту строку функции:

rowSave(id, str);

rowSave ()

var rowSave = function(id, str){
    jQuery("#myjqgrid").jqGrid('saveRow',id,{
        "succesfunc": function(response) {              
            return true;                
        },                                  
        "url": "server.aspx",
        "mtype": "GET",
        "extraparam": {}
    });
}

Что я хочу сделать

Я хочу

  • разбить строку на основе пробела
  • каждое слово в строке (после его разбиения) должно передаваться как параметр в extraparam, чтобы оно добавлялось к URL.

Я не знаю, как это сделать.

Согласно предложению Олега (см. Ниже), добавлено в ajaxRowOptions: {cache: false} в моем определении jqgrid.

$("#myjqgrid").jqGrid({
   ajaxRowOptions: {cache: false}
});

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Код может быть примерно следующим:

var rowSave = function(id, str) {
    var strParts = str.split(' '), l = strParts.length, i, obj = {},
        codeStart = 'A'.charCodeAt(0); // 65

    for (i = 0; i < l; i++, codeStart++) {
        obj[String.fromCharCode(codeStart)] = strParts[i];
    }
    $("#myjqgrid").jqGrid('saveRow', id, {
        succesfunc: function(response) {
            return true;                
        },                                  
        url: "server.aspx",
        mtype: "GET",
        extraparam: obj
    });
}

Сначала obj будет заполнен как {A: "it\'s", B: "a", C: "beautiful", D: "day"}, а затем будет использоваться как значение extraparam.

1 голос
/ 02 февраля 2012

Вы можете определить функцию, подобную следующей, для создания объекта дополнительного параметра:

function encodeStr(str){
    var s = str.split(' '), i, result = {};

    for (i = 0; i < s.length; i++){
        result['param' + i] = s[i];
    }

    return (result);
}

jQuery.ajax используется внутренне jqGrid и может обеспечить правильную сериализацию. Если у вас возникли проблемы, используйте encodeURIComponent для кодирования каждого параметра.

В любом случае, затем просто вызовите этот объект, когда укажите свои параметры:

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