Форма записи jqGrid для редактирования пуста

Я реализовал jqGrid, но когда я пытаюсь использовать встроенную функцию редактирования формы, появляется пустая форма.

Для каждого столбца я установил editable:true, за исключением первичного ключа таблицы, автоматически увеличивающегося идентификатора. Что я делаю неправильно? Нужно ли мне иметь действительный 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"]

person Andrea    schedule 16.05.2011    source источник


Ответы (1)


Я предполагаю, что причина в том, что вы используете "editable": "true" или "editable": "false" вместо "editable": true или "editable": false.

Более того, вы пытаетесь использовать редактирование формы для локальное редактирование данных. Текущая реализация jqGrid поддерживает локальное редактирование данных только для редактирования ячеек. и встроенное редактирование. Если вам нужно использовать редактирование формы для редактирования локальных данных вы можете найти мою демонстрацию в ответ. Код будет длиннее, но это возможно реализовать.

person Oleg    schedule 16.05.2011
comment
Изменено editable:true на editable:true, и форма становится заполненной. Потрясающий! - person Andrea; 16.05.2011
comment
@Andrea: на www.json.org вы можете обнаружить, что логический тип данных должен быть закодирован без двойных кавычек. . - person Oleg; 16.05.2011
comment
Иногда это самые простые вещи... Я переписывал поток управления своего приложения и установил по умолчанию для всех редактируемых элементов как false и не мог понять, что происходит. Нашел ошибку и исправил, спасибо :) - person blong; 24.08.2011
comment
О, я потратил на этот вопрос 4 часа :( Спасибо Олег! - person ymakux; 18.11.2012