Выпадающий список в ячейках jqxgrid

Я пытаюсь заполнить таблицу в Jqxgrid, содержащую два столбца: один с клиентом и один с раскрывающимся списком, содержащим имена групп.

Эта часть успешно извлекает данные для использования в раскрывающемся списке. Chrome успешно регистрирует его в консоли:

var groupsource =
{
    datatype: "json",
    datafields: [
        { name: 'groupname', type: 'string'},
        { name: 'groupid', type: 'integer'}
    ],
    id: 'GroupID',
    url: 'testje.php',
    cache: false,
};

Эта часть также работает нормально:

var employeesAdapter = new $.jqx.dataAdapter(groupsource, {
    autoBind: true,
    beforeLoadComplete: function (records) {
        var data = new Array();
        // update the loaded records. Dynamically add EmployeeName and EmployeeID fields. 
        for (var i = 0; i < records.length; i++) {
            var employee = records[i];
            employee.GroupName = employee.groupname;
            employee.GroupID = employee.groupid;
            data.push(employee);
        }
        return data;
    }
});

Однако эта часть, похоже, не загружает источник данных правильно? Ни в одном из раскрывающихся списков нет данных. Когда я захожу в консоль, в ней нет имен групп:

var source =
{
    datatype: "json",
    datafields: [
        { name: 'GroupName', value: 'GroupID', values: { source: employeesAdapter.records, value: 'GroupID', name: 'GroupName' } },
        { name: 'client'}
    ],
    url: 'singlesgrid_data.php',
    cache: false,
    updaterow: function (rowid, rowdata){
        // synchronize with the server - send update command
        $.ajax({
            dataType: 'json',
            url: 'singlesgrid_data.php',
            data: {'update' : 'true', 'client' : rowdata.client, 'groupid' : rowdata.groupid},
            success: function (data, status, xhr){
                // update command is executed.
            }
        });
    }
};

Очевидно, что этот вывод тоже не будет работать:

var dataAdapter = new $.jqx.dataAdapter(source);        
$("#jqxgrid").jqxGrid(
{
    source: dataAdapter,
    editable: true,
    sortable: true,
    pageable: true,
    columns: [
        { text: 'Groep', datafield: 'GroupID', displayfield: 'GroupName', columntype: 'dropdownlist', width: 150},
        { text: 'client', datafield: 'client', width: 250}
    ]
});

Может ли кто-нибудь сказать мне, что происходит с заполнением полей данных в исходной переменной?


person driesken    schedule 17.03.2014    source источник


Ответы (2)


решение:

var groupsource =
        {
            datatype: "json",
            datafields: [
                { name: 'groupname', type: 'string'},
                { name: 'groupid', type: 'integer'}
            ],
            id: 'GroupID',
            url: 'testje.php',
            cache: false,
            async: false
         };

Также вы можете посмотреть на этот пример: jQWidgets Grid DropDownList Editor Надеюсь, это поможет вам.

person scripto    schedule 17.03.2014
comment
Я пробовал это раньше. К сожалению, это не решает. Выпадающие списки остаются пустыми... - person driesken; 19.03.2014

Получилось ли у вас что-нибудь с этим, у меня похожая проблема, но пробовали ли вы autoBind: true на своем адаптере данных:

var dataAdapter = new $.jqx.dataAdapter(source, { autoBind: true });

Это преобразовало значения в полях в фактические имена для меня, но не перечислило никаких значений, доступных для поля, которых не было в сетке.

person Nigel Johnson    schedule 28.02.2015