Нужна помощь с jqGrid и navGrid - PullRequest
0 голосов
/ 26 ноября 2010

В основной части jqGrid есть параметр postData, который можно установить для добавления содержимого в переменную POST.Есть ли способ, которым я мог бы сделать то же самое с navGrid?

Вот что у меня есть:

основной скрипт jqGrid

    $("#"+id).jqGrid({
        url:baseURL+'modules/'+module+'/config.php',
        postData: {event: 'load-content',content : id,module: module},
        datatype: 'json',
        mtype: 'POST',
        colNames:colNames,
        colModel:colModel,
        pager: '#pager',
        rowNum:limit,
        rowList:[10,20,30],
        autowidth: true,
        sortname: sortby,
        sortorder: 'desc',
        gridview: true,
        viewrecords: true,
        caption: title,
        editurl: baseURL+'modules/'+module+'/config.php'
    });

скрипт navGrid

jQuery("#"+id).jqGrid('navGrid','#pager',
    {del:true,add:true,edit:true}, //options
    {height:280,reloadAfterSubmit:false}, // edit options
    {height:280,reloadAfterSubmit:false}, // add options
    {reloadAfterSubmit:false}, // del options
    {});

Я хочу добавить {module: module, event: 'del-test'} к POST кнопки удаления.

Ответы [ 3 ]

1 голос
/ 26 ноября 2010

Вы можете использовать дополнительный editData (для операций добавления или редактирования) или delData (для операции удаления) и изменять параметры del, используемые в качестве параметра 'navGrid' из

{reloadAfterSubmit:false}

до

{reloadAfterSubmit:false, editData:{module: module, event: 'del-test'}}

(переменная module должна быть определена ранее).

Кстати, как с параметром postData (см. этот старый ответ) вы можете использовать функцию для любого свойства editData параметра:

{
    reloadAfterSubmit:false,
    delData: {
        module: function() {
            return "bla bla";
        },
        event: 'del-test'
    }
}
1 голос
/ 29 марта 2012

Я знаю, что с тех пор, как вы опубликовали этот вопрос, я давно хотел его улучшить. В любом случае вики-страницы показывают основное использование navgrid, а этот является ответом, которыйработал для меня.

С уважением,

0 голосов
/ 26 ноября 2010

Измените свой код таким образом

$("#" + id).jqGrid('navGrid', '#pager',
    { add: true, edit: true, del: true },
    { height:280, reloadAfterSubmit:false },
    { height:280, reloadAfterSubmit:false },
    {
        // settings for Delete 
        mtype: "post",
        reloadAfterSubmit: false,
        onclickSubmit: function (rp_ge, postdata) {
            rp_ge.url = '<%: Url.Content("~/URL/TO/DELETE/METHOD/HERE") %>' + postdata;
        },
        serializeDelData: function (postdata) { 
           postdata.module = module;
           postdata.event = 'del-test';
           return postdata; 
        }
    }, 
    {},
    {}
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...