jqgrid выберите столбец списка с опцией форматирования не работает - PullRequest
0 голосов
/ 16 января 2019

Я использую jqGrid JS v5.3.2. У меня есть список пар ключ / значение, как это на сервере

key|value
23|abc
12|bdc
100|fghe

Сейчас я использую два столбца, чтобы показать / отредактировать этот список, как показано ниже: ...

{
    label: 'thelist',
    name: 'key',
    hidden: true,
    editable: true,
    editrules: {
        edithidden: true
    },
    edittype: 'select',
    editoptions: {
        dataUrl: function () {
            return "getlisthtmlfromserverURL";
        }
    }
},
{
    label: 'thelist',
    name: 'value',
    width: 150
},

...

Я попытался использовать formatter: 'select' в первом столбце выше, чтобы исключить необходимость во втором столбце (/ имеющем два столбца jqgrid, обслуживающих одно поле данных), но он не показывает текст / значение выбора. Я предполагаю, что jqgrid загружает (удаленно) выбор контента во время редактирования, поэтому показывать нечего. Вопрос в том, как я могу использовать один столбец в colModel для отображения и редактирования поля данных из вышеприведенного списка? TIA

1 Ответ

0 голосов
/ 17 января 2019

Полагаю, вы не прочитали документы здесь , поэтому вы должны знать, что средство форматирования типа select не поддерживает параметр dataUrl - он поддерживает только строковые и объектные значения - т.е. значения должны быть предопределены прежде чем они придут в сетку.

Для того, чтобы иметь одно поле, вы должны сначала получить ключ / значение, прежде чем создавать сетку и передавать ее в качестве параметра значения в форматах.

{
    name:'key', 
    formatter:'select', 
    formatoptions : {value:"23:abc;12:bdc;100:fghe"},
    edittype: 'select',
    editoptions: {
        value:"23:abc;12:bdc;100:fghe"
    }
} 

UPDATE

В случае пользовательской опции для предварительной выборки это не так сложно. Вы должны просто сделать

$.ajax({
    url : "url_to get_select(s)",
    success : functon(....) {
        // build your select string here 
        // call the jqGrid with that string.
        $(...).jqGrid({...});
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...