2011-08-28 15 views
0

我有一个带有复选框列的jqgrid。当按下复选框时,我需要更新数据库。JqGrid复选框,控制器检索null而不是int

我可以从我的jqGrid检索ID,但是当我进一步将其发送到我的控制器我找回ID = NULL

这里是负载功能齐全的代码

 var iCol = getColumnIndexByName($(this), 'Aktiv'), rows = this.rows, i, 
      c = rows.length; 

     for (i = 0; i < c; i += 1) { 
      $(rows[i].cells[iCol]).click(function(e) { 
       var id = $(e.target).closest('tr')[0].id, 
        isChecked = $(e.target).is(':checked'); 

       alert('clicked on the checkbox in the row with id=' + id + 
        '\nNow the checkbox is ' + 
        (isChecked ? 'checked' : 'not checked')); 


       $.ajax({ 
         mtype: "POST", 
         url: '@Url.Action("Action")', 
         data: { actionparameter: id }, 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 
         async: false, 
         cache: false 

      }); 
      ; 

回答

0

如果alert节目对于id不为空,您应验证您的服务器代码。取决于你的配置,你可以需要使用JSON.stringify方法从json2.js

data: JSON.stringify({actionparameter: id}) 

或只是做在$.ajax呼叫没有JSON具体prameters。

+0

在我的控制器中我有普通comde像公共ActionResult Action(String id)。是JSON结果不能发现它是一个字符串,我试图解析它的问题? – Timsen

+0

@Timsen:没有“标准代码”。例如,ASP.NET MVC 2.0不按默认处理JSON序列化数据。它主要使用表单,它使用jQuery默认的默认'contentType:'application/x-www-form-urlencoded''。我不明白你为什么要发送JSON编码数据? – Oleg

+0

我只想从ID列发送ID,没有别的。它只是所有的例子,我已经建立了他们使用json – Timsen