Заполнить DropDownList с помощью AJAX - PullRequest
1 голос
/ 27 июля 2010

У меня очень длинный список предметов для выпадающего списка.Поскольку список очень длинный, я хотел бы отображать элементы в списке только в том случае, если пользователь фактически щелкает раскрывающийся список, чтобы развернуть его.Я нашел различные учебные пособия о том, как использовать AJAX с каскадными выпадающими списками, но ни один из них не объяснял, возможно ли иметь только один выпадающий список, который заполняется AJAX, когда пользователь расширяет его.что я пропустил?Каков наилучший способ достижения этого?

Спасибо, Бен

1 Ответ

1 голос
/ 27 июля 2010

Что бы я сделал, это:

Есть один пустой элемент в списке.Когда выпадающий список получает фокус, вы меняете этот элемент на «Загрузка» или что-то в этом роде.Затем вы делаете требуемый вызов ajax.

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

Похоже, этого не будетслишком сложно сделать что-то подобное.

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

РЕДАКТИРОВАТЬ: Кстати, на ваш вопрос о расширителях я неничего не знаю об этом.

РЕДАКТИРОВАТЬ 2: Вы можете попробовать что-то вроде этого:

$(document).ready(
    function()
    {
       $("#theSelect").bind("focus", function()
                            {
                                $("option:first", this).html("Loading...");
                                setTimeout(AjaxSuccessCall, 2000);
                            });
    });

function AjaxSuccessCall(data)
{
    var select = $("#theSelect");
    select.unbind("focus");
    select.children("option").remove();
}
...