2013-02-06 44 views
3

在我的jqgrid中我有一个图标,当我点击它时,我必须调用ajax的函数来删除数据库中的数据。如何删除jqgrid中的行

这是代码:

function loadnotespese(){ 
    $("#clienti-navgrid").jqGrid({  
      .... 
      colNames:['Tipo spesa','Importo','Unita di misura','Descrizione',''],     
      colModel:[ 
        {name:'category', index:'category', width:'20', sortable:false}, 
        {name:'value', index:'value', width:'10', sortable:false}, 
        {name:'um', index:'um', width:'5', sortable:false}, 
        {name:'note', index:'note', width:'30', sortable:false}, 
        {name:'links', index:'links', width:'5', sortable:false, align:'center', formatter: currencyFmatter, 
         cellattr: function (rowId, tv, rawObject, cm, rdata) { 
          return ' onClick="deleteNote(' + rowId + ')"'; 
         } 
        }, 
      ], 
      .... 
     });//jqGrid 
} 

这里的2个功能:

function currencyFmatter(cellvalue, options, rowObject) { 
    var cellValue = rowObject.id; 
    return "<img title= 'Elimina' src='/images/delete-icon.png' />"; 
} 


function deleteNote(value){ 
    var params = {}; 
    params['idProgetto'] = value; 
    $.ajax({ 
     url: '/project/deletenota.do', 
     type: 'GET', 
     dataType: 'json', 
     data: params, 
     success: function(response){ 
      if (response != "error"){ 
       $("#clienti-navgrid").trigger("reloadGrid", [{current: true}]); 
       dialogNotice("Nota spesa inserita<br/> ", 300, 150); 
      } 
      else 
       dialogNotice("E' avvenuto un errore nell'inserimento della nota spesa<br/> ", 300, 150); 
      } 
    }); 
} 

是正确的调用deleteNote()这样的吗?或者我错了什么?因为没有发生。

感谢

+0

附注:在你的Ajax调用,你只处理那些发生在服务器级别的错误,而不是在运输/通信水平。你应该使用内置的ajax错误处理事件。 –

回答

4

如果你想有一个删除按钮,每行,你可以通过

{name : 'actions', index: 'actions', formatter:'actions', 
    formatoptions: { 
    keys: true, 
    editbutton: false, 
    delOptions: { url: '/controller/deleteRecordAction' } 
    }}, 

添加它你会在地方上面的URL来处理删除操作指定自己的控制器动作。

这里是一个工作示例 http://jsfiddle.net/dumbguy5689/9ueDL/6/

+0

tks,我需要在URL中传递参数,我将设置delOptions:{url:'/project/deletenota.do?idSpesa'+id}。在我的jqgrid代码中,我将设置jsonReader:{repeatitems:false,id:“idSpesa”,root:function(obj){return obj; }}。我如何获得该ID? –

+0

我想如果我明白你想要什么,你可以通过'delData:extraValue'向控制器传递额外的数据,你可以随时检查你的POST是通过Firebug发送的还是它的等价物 – Mark

+0

我不知道如何传递额外的数据数据到控制器,我尝试使用delData ...但我想我错过了一些东西,在我的行中,我有一个值“idSpesa”,我需要这个值并作为参数传递给控制器​​,我该怎么做? –