Поддерживает ли форма редактирования jQuery jqGrid поля множественного выбора? - PullRequest
1 голос
/ 13 февраля 2011

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

Это может быть:

  1. Список флажков
  2. Выберите Список с флажками, чтобы вы могли выбрать более одного.

Возможно ли это в jqGrid?

1 Ответ

2 голосов
/ 13 февраля 2011

jqGrid поддерживает многоэлементное редактирование.Он не использует чекбоксы для выбора, но выбирает несколько элементов выбора.Я сделал демо , используя встроенное редактирование по двойному щелчку.enter image description here

Вот соответствующий код:

jQuery(document).ready(function() {
    var lastSel, mydata = [
        {id:0, Name:"Lukas Podolski",     Category:"1", Subcategory:"1"},
        {id:1, Name:"Michael Schumacher", Category:"1", Subcategory:"2"},
        {id:2, Name:"Albert Einstein",    Category:"2", Subcategory:"3,4"},
        {id:3, Name:"Blaise Pascal",      Category:"2", Subcategory:"4"}
    ], grid = jQuery("#list");
    grid.jqGrid({
        data: mydata,
        datatype: 'local',
        colModel: [
            { name: 'Name', index: 'Name', width: 130, editable: true },
            {
                name: 'Category', index: 'Category', width: 100,
                formatter:'select', editable: true, edittype:'select',
                editoptions: {
                    value: '1:sport;2:science',
                    multiple: true,
                    size: 2
                }
            },
            {
                name: 'Subcategory', index: 'Subcategory', width: 250,
                formatter:'select', editable:true, edittype:'select',
                editoptions: {
                    value: '1:football;2:formula 1;3:physics;4:mathematics',
                    multiple: true,
                    size: 4
                }
            }
        ],
        sortname: 'Name',
        viewrecords: true,
        rownumbers: true,
        sortorder: 'desc',
        pager: '#pager',
        height: '100%',
        editurl: 'clientArray',
        ondblClickRow: function(rowid) {
            jQuery(this).jqGrid('editRow', rowid, true, null, null, 'clientArray');
        },
        onSelectRow: function(id){
            if (id && id!==lastSel){
                jQuery(this).restoreRow(lastSel);
                lastSel=id;
            }
        },
        caption: 'Selects with multiselect'
    });
});

Кстати, при создании демо я обнаружил, что нельзя использовать элементы select, имеющие«0» в качестве идентификатора, который не полностью поддерживается.Например, «1: спорт; 2: наука» работает, но не «0: спорт; 1: наука».В случае, если выбор элемента «спорт» не будет сохранен.

Если вам нужно использовать более удобные средства управления с флажками, вы должны реализовать поведение в отношении пользовательского редактирования .

...