Как динамически передать все значения ячейки jqgrid при удалении строки - PullRequest
0 голосов
/ 30 июня 2010

Я очень новичок в JQGrid, поэтому заранее прошу прощения, если это очень "скучный" вопрос ..

В случае, когда я удаляю строку в сетке, jqgrid только передает идентификатор параметра в editurl. Тем не менее, есть случаи, когда мне нужно более одного параметра id для удаления строки, например, для сетки, например:

{UserID, Message} => {(user1, "hello"),(user1, "hola"),(user2,"hi")}

Если я хочу удалить только строку (user1, "hello"), мне нужно, чтобы JQGrid передавал параметр UserID = user1 и Message = "hello", в противном случае (user1, "hello") и (user1, "hola ") будет удалено.

Я уже пытался изменить URL-адрес перед удалением с помощью параметра onClickSubmit:

onclickSubmit: function(rp_ge, postdata){
    rp_ge.url = 'RowManipulator.php?UserID='+$('#grid').getCell(postdata, 'UserID')+
                '&Message='+$('#grid').getCell(postdata,'Message');

Однако полученный URL (после проверки на firebug):

RowManipulator.php?UserID=user1&Message=false

вместо RowManipulator.php?UserID=user1&Message="hello". Кажется, что сообщение сообщение не может быть доставлено.

Кто-нибудь знает, как добиться того, к чему я стремился? Буду очень признателен за любую помощь

Обновлено: Вот код jquery:

jQuery(document).ready(function(){
    jQuery("#list").jqGrid(
        { url:'DataFetcher.php',
          datatype: 'xml',
          mtype: 'GET',
          colNames:['UserId','Message'],
          colModel:[
              {name:'UserId',index:'UserId',width:75, editable:false,align: 'left'},
              {name:'Message',index:'Message',width:200, editable:true,align: 'left'}
          ],
          pager: jQuery('#pager'),
          rowNum:10,
          rowList:[10,20,30],
          sortname:'UserId',
          sortorder: "asc",
          viewrecords: true,
          imgpath: 'jqgrid/css/images',
          caption: 'MESSAGE',
          editurl:'RowManipulator.php',
          height: 350,
          width: 1000});
     jQuery("#list").jqGrid('navGrid','#pager',{},
         {height:280,reloadAfterSubmit:true},
         {height:280,reloadAfterSubmit:true},
         {onclickSubmit: function(rp_ge, postdata){
             rp_ge.url = 'RowManipulator.php?UserId='
                         $('#list').getCell(postdata, 'UserId') &&
                         Message=$('#list').getCell(postdata,Message);
         },
         reloadAfterSubmit:true},
         {sopt:['cn','eq']})

1 Ответ

1 голос
/ 30 июня 2010

Линия

rp_ge.url = 'RowManipulator.php?UserId='
                         $('#list').getCell(postdata, 'UserId') &&
                         Message=$('#list').getCell(postdata,Message);

имеет синтаксические ошибки. postdata еще не содержит 'UserId'? Тогда $('#list').getCell(postdata, 'UserId') вернет вам postdata.

Попробуйте с

rp_ge.url = 'RowManipulator.php?UserId=' +
             $('#list').getCell(postdata, 'UserId') +
             'Message=' + $('#list').getCell(postdata,'Message');

или лучше с

rp_ge.url = 'RowManipulator.php?' +
            jQuery.param({UserId: $('#list').getCell(postdata, 'UserId'),
                          Message: $('#list').getCell(postdata, 'Message')});
...