Сборка JQGrid с выпадающими списками и флажками

Прыжки на подножку и публикация другого решения. Это общая реализация Java. Вход: (int k) - количество элементов для выбора, а (List<T> list) - список, на который нужно выбрать. Возвращает список комбинаций (List<List<T>>).

public static <T> List<List<T>> getCombinations(int k, List<T> list) {
    List<List<T>> combinations = new ArrayList<List<T>>();
    if (k == 0) {
        combinations.add(new ArrayList<T>());
        return combinations;
    }
    for (int i = 0; i < list.size(); i++) {
        T element = list.get(i);
        List<T> rest = getSublist(list, i+1);
        for (List<T> previous : getCombinations(k-1, rest)) {
            previous.add(element);
            combinations.add(previous);
        }
    }
    return combinations;
}

public static <T> List<T> getSublist(List<T> list, int i) {
    List<T> sublist = new ArrayList<T>();
    for (int j = i; j < list.size(); j++) {
        sublist.add(list.get(j));
    }
    return sublist;
}
16
задан Justin Ethier 16 February 2010 в 20:22
поделиться

1 ответ

Вы можете использовать окно форматирования , чтобы отобразить ячейку в виде флажка. Как часть colmodel:

// A checkbox that is read-only until the user edits the row
{name:'my_checkbox',index:'my_checkbox', editable:true, 
 edittype:"checkbox", formatter:'checkbox' }

// A checkbox that may be edited at any time
{name:'my_clickable_checkbox',index:'my_clickable_checkbox', sortable:true, 
 formatter: "checkbox", formatoptions: {disabled : false}, editable: true,
 edittype:"checkbox"}

Что касается раскрывающегося списка, вы можете передать функцию настраиваемого формата функции editrow:

jQuery('#mygrid').editRow(id, true, formatEditors);

Затем внутри этой функции вы захотите создать SELECT (или любой другой раскрывающийся список, который вам нужен):

function formatEditors(id) {
    // Your drop down code here...
    // EG: jQuery("#"+id+"_myDropDownRow","#mygrid").
}

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

28
ответ дан 30 November 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: