пытается изменить asmselect для очень длинного списка выбора - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть мультиселект на моей странице, использующий asmselect, который прекрасно работает.

Я пытаюсь добавить другой мультиселект на страницу, но столкнулся с проблемами. Существует около 11 000 опций, которые заставляют asmselect загружаться вечно, поскольку он проходит по всему списку в коде jquery asmselect. Даже если бы я мог улучшить время загрузки, пользователю было бы не так просто просмотреть весь список, чтобы найти свой вариант.

Я думал добавить кнопку, которая открывала бы диалоговое окно (я успешно использую диалоги в других местах на странице для добавления опций для выбора списков), где пользователь может ввести некоторую информацию о фильтре, а затем выбрать из отфильтрованного список. Таким образом, они вводят 101, и в нем перечисляются опции «10100», «22101», «31015» и т. Д. Они выбирают «10100». «10100» отображается на главном экране как выбрано. Затем они могут снова нажать кнопку и ввести «105», что даст им новый отфильтрованный список выбора, и они выберут «10500», который теперь отображается вместе с «10100» на главном экране.

Первый вопрос, есть ли лучший способ справиться с этим?

Во-вторых, могу ли я использовать форматирование для asmselect, чтобы отобразить мои вновь выбранные элементы, чтобы оно соответствовало форматированию моего другого asmselect, и использовать встроенную функциональность с «remove» для отмены выбора элемента. Я смотрю на код asmselect, но мои знания jquery очень ограничены, и я не могу понять это. Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 01 марта 2011

Я достиг этого благодаря наличию раскрывающегося списка опций в диалоге с помощью плагина droplistFilter .Когда в раскрывающемся списке был выбран параметр и была нажата кнопка «Добавить» в диалоговом окне, этот параметр был добавлен в мой множественный выбор (с помощью плагина asmselect) и установлен в значение «Выбранный», и я отключил этот параметр в раскрывающемся списке.В моем $(document).ready(function() { в раскрывающемся списке я выбрал каждый выбранный параметр в моем множественном элементе как отключенный.

        $('#Vendor_IDs').asmSelect({
            sortable: false
        });
        $('#vendor').droplistFilter();
        $('#Vendor_IDs option:selected', this).each(function () {
            $("#vendor option[value='" + $(this).val() + "']").attr("disabled", true);
        });

        $('#popupAddVendor').dialog(
        {
            autoOpen: false,
            modal: true,
            width: 600,
            buttons:
            {
                'Add': function () {
                    var v = $('#vendor').val();
                    if (v.length > 1) {
                        $('#Vendor_IDs').append($('<option></option>').val(v).html($('#vendor option:selected').text()).attr("selected", true));
                        $('#Vendor_IDs').change();
                        $('#vendor option:selected').attr("disabled", true).attr("selected", false);
                        $('#vendor').attr('selectedIndex', 0);
                    }
                    $(this).dialog('close');

                },
                'Cancel': function () {
                    $(this).dialog('close');
                }
            }
        });
...