第grid.editRow(id, true);
行 - 给出了错误。
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>
答案 0 :(得分:5)
您尚未发布您使用的整个HTML代码,因此我不得不猜测。您描述的问题的最常见原因可能是以下两个中的一个:
$.jgrid.no_legacy_api = true;
之前添加了jquery.jqGrid.min.js
之类的代码。因此,只能使用“新API”。换句话说,您应该将代码grid.editRow(id, true)
替换为代码grid.jqGrid('editRow', id, true)
。jquery.jqGrid.min.js
。要验证这一点,您可以在文本编辑器中打开jquery.jqGrid.min.js
,并在grid.inlinedit.js
文件开头的注释中搜索jquery.jqGrid.min.js
字符串。 jquery.jqGrid.min.js
文件中包含的所有jqGrid模块的列表位于文本“* Modules:”之后。您需要使用“内联编辑”模块download jqGrid。