2011-06-01 105 views
0

grid.editRow(id, true); - 正在提供錯誤。無法使用editRow與jqgrid

uncaught TypeError: Object #<Object> has no method 'editRow'

如何這個問題能解決?

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery("#list").jqGrid({ 
      url: '/Home/GridData/', 
      datatype: 'json', 
      mtype: 'POST', 
      colNames: ['Id', 'Votes', 'Title'], 
      colModel: [ 
     { name: 'Id', index: 'Id', width: 40, align: 'left' }, 
     { name: 'Votes', index: 'Votes', width: 40, align: 'left', editable: true, edittype: 'text' }, 
     { name: 'Title', index: 'Title', width: 400, align: 'left'}], 
      pager: jQuery('#pager'), 
      rowNum: 10, 
      rowList: [10, 20, 50], 
      sortname: 'Id', 
      sortorder: "desc", 
      viewrecords: true, 
      imgpath: '', 
      caption: 'My first grid', 
      onSelectRow: function (id) { 
       var grid = $("#list");      
       grid.editRow(id, true); 
      } 
     }); 
    }); 
</script> 
... 
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table> 
<div id="pager" class="scroll" style="text-align:center;"></div> 

回答

5

您還沒有發佈您使用的整個HTML代碼,所以我必須猜測。爲您介紹可能是這兩個中的一個問題最常見的原因:

  1. jquery.jqGrid.min.js之前包括像$.jgrid.no_legacy_api = true;代碼。所以只能使用「新API」。換句話說,您應該將代碼grid.editRow(id, true)替換爲代碼grid.jqGrid('editRow', id, true)
  2. 您下載並使用了不包含「Inline Editing」模塊的jquery.jqGrid.min.js。要驗證這一點,您可以在文本編輯器中打開jquery.jqGrid.min.js,並在jquery.jqGrid.min.js文件開頭的註釋中搜索grid.inlinedit.js字符串。 jquery.jqGrid.min.js文件中包含的所有jqGrid模塊列表位於文本「* Modules:」之後。您需要download jqGrid和「Inline Editing」模塊。