jqgrid - флажок для заголовка группы для многозадачности элементов группы

В настоящее время я использую jqgrid для привязки данных. У меня есть 2 вопроса: 1) Когда Multiselect истинно, у нас есть флажок в строке заголовка, который выбирает все строки независимо от группировки.

То, что я пытаюсь достичь, - установить флажок на уровне заголовка группы. Таким образом, каждая группа будет иметь флажок multiselect, который при проверке проверяет только все строки в этой конкретной группе, оставляя оставшиеся группы такими, какие они есть.

If the checkbox option at the group header is not possible can we have the group header clickable so that we can check all the rows in that group? I found a similar question asked at click here but they are not using jqgrid.

2) Мой следующий вопрос: можем ли мы вставлять изображения .gif, .jpg как часть данных в столбцах в jqgrid?

Поскольку я новый пользователь, мне жаль, что я не смог добавить моментальные снимки.

благодаря

1
добавлено
Просмотры: 2
nl ja de
Всего несколько вещей, чтобы отметить. Убедитесь, что вы пытались решить свою проблему. Вы должны попытаться опубликовать некоторый код. Проверьте правильность и грамматику. Например, «i» - «I». Мы понимаем, что английский не является родным языком для всех, но попробуйте уточнить, если вы не уверены.
добавлено автор happy coder, источник

2 ответы

Demo is JSFIDDLE DEMO

Как предложил @david, добавлен флажок HTML через свойство groupText для заголовка группы. И обработчик записи для флажка щелкните/измените событие.

Если исходная таблица jqgrid id - это grid , строка заголовка группы tr имеет class = "gridghead_0" , а вложенные заголовки групп будут следовать gridghead_1 в gridghead_n .

  1. checkbox click/change handler (JS DOM Ready function)

    $("table tbody").on("change", "input[type=checkbox]", function (e) {        
        var currentCB = $(this);
        var grid = jQuery('#grid');
        var isChecked = this.checked;
        if (currentCB.is(".groupHeader")) { //if group header is checked, to check all child checkboxes                     
            var checkboxes = currentCB.closest('tr').nextUntil('tr.gridghead_0').find('.cbox[type="checkbox"]');
            checkboxes.each(function(){
                if (!this.checked || !isChecked)                   
                    grid.setSelection($(this).closest('tr').attr('id'), true); 
            });
        } else {  //when child checkbox is checked
            var allCbs = currentCB.closest('tr').prevAll("tr.gridghead_0:first").nextUntil('tr.gridghead_0').andSelf().find('[type="checkbox"]');
            var allSlaves = allCbs.filter('.cbox');
            var headerCB = allCbs.filter(".groupHeader");
            var allChecked = !isChecked ? false : allSlaves.filter(":checked").length === allSlaves.length;
            headerCB.prop("checked", allChecked);
        }
    }); 
    
  2. settings/options for 'multiselect' and 'grouping'

    ...
    multiselect: true,
    grouping:true,
    groupingView : {
        groupField : ['name'],
        groupText : ['<input type="checkbox" class="groupHeader"/>   {0}  '],
        groupColumnShow : [false],
    },
    ...
    
  3. when select-all is checked, to check group header checkbox

    onSelectAll: function(rowIds, allChecked) {
        $("input.groupHeader").attr('checked', allChecked);
    },
    
3
добавлено

В заголовке группы есть флажок, но в jqGrid нет встроенных функций.

Вы можете добавить HTML через свойство groupText . Затем вы можете закодировать прослушиватели кликов для этого входа вне конфигурации jqGrid. У вас может быть что-то подобное в вашей конфигурации jqGrid:

groupingView: { 
  groupField: [  ],
  groupOrder: [  ],        
  groupText: ['{0} - {1} Records(s)' + 
    '' + 
    '<input type="checkbox" class="grouping">' + 
    '' + 
    ''],         
  groupColumnShow: [true],
  groupCollapse: true
}

Теперь вам нужно закодировать слушателей, используя метод jQuery on , поскольку флажки не будут существовать в режиме dom.

1
добавлено
@JaikishenJayadev - не забывайте поднимать и/или принимать полезные ответы.
добавлено автор david, источник
Могу ли я найти демо/скрипку для этой функции?
добавлено автор icedek, источник
Дэвид благодарен за ваш вклад. Счастливый кодер Я здесь, чтобы найти решения моих проблем, связанных с кодированием, чтобы не изучать грамматику английского языка или орфографию. В любом случае спасибо.
добавлено автор Jaikishen Jayadev, источник