Вы должны использовать List
или array
вместо
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
Или
int[] arr = new int[10];
arr[0]=1;
arr[1]=2;
Или даже лучше
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("n1", 1);
map.put("n2", 2);
//conditionally get
map.get("n1");
Вы можете украшать элементы атрибутами data-
, чтобы отличать их от остальных и группировать их. Подробнее об этом здесь .
В вашем примере, флажки, которые вы хотите сосчитать, могут иметь атрибут data-count-group="insidetable"
.
В MVC это можно сделать следующим образом:
@Html.CheckBoxFor(modelitem => item.IsChecked, new { data_count_group = "insidetable" })
С помощью jQuery вы можете обнаружить изменения во всех флажках с этим атрибутом и сосчитать все отмеченные:
$('body').on('change', 'input[data-count-group]', function(e) {
// get the group
var group = $(this).data('count-group');
// get the count for group
var checkedCount = $('input[data-count-group="'+group+'"]:checked').length;
// display the count
$('span[data-count-total="'+group+'"]').text(checkedCount);
});
[1110 ] Вот рабочий пример с несколькими группами флажков: https://jsfiddle.net/xd80a6r9/3/