Невозможно использовать editRow с jqgrid - PullRequest
0 голосов
/ 01 июня 2011

Строка 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>

1 Ответ

5 голосов
/ 01 июня 2011

Вы не опубликовали весь HTML-код, который используете, поэтому я должен догадаться.Наиболее распространенной причиной проблемы, которую вы описываете, может быть одна из этих двух:

  1. Вы включили код, подобный $.jgrid.no_legacy_api = true; перед jquery.jqGrid.min.js.Таким образом, можно использовать только «новый API».Другими словами, вы должны заменить код grid.editRow(id, true) на код grid.jqGrid('editRow', id, true).
  2. . Вы загрузили и использовали jquery.jqGrid.min.js, который не включает модуль «Inline Editing».Чтобы убедиться в этом, вы можете открыть jquery.jqGrid.min.js в текстовом редакторе и найти строку grid.inlinedit.js в комментарии, которая находится в начале файла jquery.jqGrid.min.js.Список всех модулей jqGrid, включенных в файл jquery.jqGrid.min.js, находится после текста «* Modules:».Вам необходимо загрузить jqGrid с помощью модуля "Inline Editing".
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...