Прыжки на подножку и публикация другого решения. Это общая реализация 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;
}
Вы можете использовать окно форматирования
, чтобы отобразить ячейку в виде флажка. Как часть 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").
}
Таким образом, когда вы редактируете строку, данные будут отображаться в раскрывающемся списке.