2011-05-16 96 views
0

我已经实现了一个jqGrid,但是当我尝试使用内置的表单编辑功能时,会弹出一个空表单。jqGrid编辑记录表空

对于我设置了editable的每一列:除了表的主键,一个自动递增的ID。我究竟做错了什么?我需要有一个有效的editurl,而不是clientArray?下面是jqGrid的实现:

$.ajax({ 
    type: "GET", 
    url: colUrl, 
    datatype: "json", 
    success: function(result){ 
     result = jQuery.parseJSON(result) 
     var colN = result.colNames; 
     var colM = result.colModelList; 
     $("#jqTable").jqGrid({ 
      url:dataUrl, 
      datatype: 'xml', 
      mtype: 'GET', 
      colNames:colN, 
      colModel:colM, 
      shrinkToFit: false, 
      caption: db + "." + table, 
      pager: '#jqPager', 
      rowNum:10, 
      rowList:[10,20,30], 
      sortname: 'dbid', 
      editurl: 'clientArray', 
      sortorder: 'asc', 
      viewrecords: true, 
      width: 1000, 
      height: 400 
      }); 
     $("#jqTable").jqGrid('navGrid', '#jqPager', 
      {edit:true, add:false, del:false, search:true, view:false}, //options 
      {}, // edit options 
      {}, // add options 
      {}, // del options 
      {multipleSearch:true, 
      sopt : ['eq',//equals 
       'ne',//not equals 
       'lt',//less than 
       'le',//less than or equal 
       'gt',//greater than 
       'ge',//greater than or equal 
       'bw',//begins with 
       'bn',//does not begin with 
       'in',//in 
       'ni',//not in 
       'ew',//ends with 
       'en',//does not end with 
       'cn',//contains 
       'nc']//does not contain 
      }, // search options 
      {} //view options 
     ); 
    }, 
    error: function(x,e){ 
     alert(x.readyState + " " + x.status + " " + e.msg); 
    } 
}); 

,这里是样品colModel和COLNAME字符串:

"colModelList": [{"name":"dbid","index":"dbid","editable":"false"},{"name":"description","index":"description","editable":"true"},{"name":"file_name","index":"file_name","editable":"true"}],"colNames": ["dbid","description","file_name"] 

回答

4

我想,其原因是因为你用"editable": "true""editable": "false"代替"editable": true"editable": false

此外,您尝试使用form editing本地数据编辑。当前的jqGrid实现仅支持cell editinginline editing的本地数据编辑。如果您确实需要使用form editing来编辑本地数据,您可以在the answer中找到my demo。代码会更长,但实现这一点是可行的。

+0

将“editable”:“true”更改为“editable”:true,表单变为填充状态。真棒! – Andrea 2011-05-16 14:54:21

+1

@Andrea:在[www.json.org](http://www.json.org/)上,您可以发现布尔数据类型应该不用双引号进行编码。 – Oleg 2011-05-16 14:59:51

+0

有时候这是最简单的事情......我正在重写我的应用程序的控制流,并且已将所有可编辑项的默认设置为“false”,并且无法弄清楚发生了什么。发现我的错误,并修复它,谢谢:) – blong 2011-08-24 14:52:52