Каскадирование в текстовое поле с автозаполнением - PullRequest
0 голосов
/ 26 ноября 2008

У меня есть веб-страница, где пользователь вводит свой адрес. Они будут выбирать свою страну и регион в выпадающих списках. Я хотел бы предоставить автозаполнение текстового поля для их города, но я хочу быть чувствительным к контексту при выборе страны и региона. Я бы просто использовал другой каскадный выпадающий список, однако количество городов превышает максимальное количество элементов списка.

Какие-нибудь предложения или классные спины, которые могут мне помочь?

1 Ответ

0 голосов
/ 26 ноября 2008

Я только что нашел следующий блог пост, который выглядит как минимум близко к тому, что вы хотите.

Они управляют им, используя следующие функции javascript:

    function initCascadingAutoComplete() {
        var moviesAutoComplete = $find('autoCompleteBehavior1');
        var actorsAutoComplete = $find('autoCompleteBehavior2');
        actorsAutoComplete.set_contextKey(moviesAutoComplete.get_element().value);
        moviesAutoComplete.add_itemSelected(cascade);

        // setup initial state of second flyout
        if (moviesAutoComplete.get_element().value) {
            actorsAutoComplete.get_element().disabled = false;
        } else {
            actorsAutoComplete.get_element().disabled = true;
            actorsAutoComplete.get_element().value = "";
        }
    }

    function cascade(sender, ev) {
        var actorsAutoComplete = $find('autoCompleteBehavior2');
        actorsAutoComplete.set_contextKey(ev.get_text());
        actorsAutoComplete.get_element().value = '';
        if (actorsAutoComplete.get_element().disabled) {
            actorsAutoComplete.get_element().disabled = false;
        }
    }   
    Sys.Application.add_load(initCascadingAutoComplete);

Вызов каскадной функции в методе add_itemSelected родительского элемента управления для каскадного поведения.

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

...