Параметры конфигурации не установлены при перестроении - Bootstrap Multiselect - PullRequest
0 голосов
/ 06 декабря 2018

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

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

В чем может быть проблема?

onEvent: function(dt)
{
    $.each(dt.lst, function(ind, ele)
    {
        var htm = '<option value="' + ele + '">' + ele + '</option>';
        $('#myMultiSelectId').append(htm);
    });

    $('#myMultiSelectId').multiselect({
        maxHeight: 300,
        includeResetOption: true,
        resetText: 'Deselect All'
    });

    $('#myMultiSelectId').multiselect('rebuild');
}

1 Ответ

0 голосов
/ 06 декабря 2018

В документации есть пример, в котором explicity использует .multiselect('setOptions', options) в сочетании с rebuild для этой цели, поэтому попробуйте следующий код:

onEvent: function(dt)
{
    $.each(dt.lst, function(ind, ele)
    {
        var htm = '<option value="' + ele + '">' + ele + '</option>';
        $('#myMultiSelectId').append(htm);
    });

    $('#myMultiSelectId').multiselect('setOptions', {
        maxHeight: 300,
        includeResetOption: true,
        resetText: 'Deselect All'
    });

    $('#myMultiSelectId').multiselect('rebuild');
}

В качестве альтернативы выможно destroy мультиселект и создать его снова, как это:

onEvent: function(dt)
{
    $('#myMultiSelectId').multiselect('destroy');

    $.each(dt.lst, function(ind, ele)
    {
        var htm = '<option value="' + ele + '">' + ele + '</option>';
        $('#myMultiSelectId').append(htm);
    });

    $('#myMultiSelectId').multiselect({
        maxHeight: 300,
        includeResetOption: true,
        resetText: 'Deselect All'
    });
}
...