Есть ли способ использовать optgroup в dc.js selectmenu?

#dc.js #crossfilter #bootstrap-selectpicker

#dc.js #crossfilter #bootstrap-selectpicker

Вопрос:

Я использую dc-select-menu для успешной фильтрации нескольких графиков. Я украшаю выборки с помощью bootstrap-selectpicker.

Я столкнулся с ситуацией, когда мне нужно применить optgroups, что имело бы больше смысла для конечного пользователя — вместо создания другого выбора.

Я попытался добавить тег optgroup в div для dc-select.

Я попытался изменить div на select.

Я попытался добавить optgroup.

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

             var dept = ndx.dimension(function(d) { return d.Department });
            var deptGp = dept.group();

            var deptGroupLabel = ndx.dimension(function(d) { return d.DepartmentGroup; });
            var deptLabel = deptGroupLabel.group();

            var depts = "<optgroup label="   deptLabel   ">"   "</optgroup>";

          deptSelect
            .dimension(dept)
            .group(deptGp)
            .multiple(true)
            .title(function(d) { return d.key })
            .controlsUseVisibility(true);

        deptSelect
            .on('postRender', function() {
                deptSelect.select('.dc-select-menu').attr('data-actions-box', 'true');

                $('#deptSelect .dc-select-menu').selectpicker({
                    liveSearch: true,
                    liveSearchStyle: 'contains',
                    showTick: true,
                    selectOnTab: true,
                    virtualScroll: 8,
                    doneButton: true
                });
              })
                .on('postRedraw', function() {
                $('#deptSelect .dc-select-menu').selectpicker('refresh');
            });

            $('#deptSelect .dc-select-menu').append(depts);
  

Я хотел бы видеть deptLabel в качестве optgroup, за которым следуют соответствующие отделы.

Комментарии:

1. Разве идея группы опций не в том, что каждая группа независима? В терминах crossfilter. это сделало бы каждую optgroup своим собственным измерением и группой crossfilter, и это было бы трудно втиснуть в dc.js диаграмма. (Я думаю, это было бы составное selectMenu, тьфу.)

2. Думаю, я этого не уточнил. Да, я использую .dc-select-menu. (Оформление с помощью bootstrap-selectpicker. Мне действительно это нужно только как метка, не обязательно выбираемая. Я пытаюсь избежать добавления другого выбора, чтобы добавить ясности в очень длинный список. С тех пор я попытался добавить data-* в качестве атрибута, чтобы получить доступ к нему, но он привязан только к первому параметру dc-select-option.

3. Ах, я просто перечитал ваш комментарий и лучше понимаю вашу точку зрения. (Извините, должно было замедлиться на минуту). Итак, составное selectMenu, точно так же, как составление составных диаграмм?

4. Это была слабая шутка, извините. Я не думаю, что selectMenu в том виде, в котором он написан в настоящее время, может обрабатывать более одной группы / измерения. Итак, я думаю, вы могли бы отобразить заголовки optgroup, но управлять двумя фильтрами одновременно было бы сложно.

5. Да. Я нахожу это (управление двумя фильтрами). часть). Прямо сейчас у меня возникли проблемы с добавлением optgroup. В любом случае, спасибо, что посмотрели на это. Я ценю это! И спасибо вам за все, что вы делаете с этой библиотекой — это фантастика!