级联到自动完成文本框

时间:2008-11-25 23:13:26

标签: ajax ajaxcontroltoolkit

我有一个网页,用户可以在其中输入他们的地址。他们将在级联下拉列表中选择他们的国家和地区。我想为他们的城市提供一个自动完成文本框,但我希望对国家和地区选择具有上下文敏感性。我本来会使用另一个级联下拉列表,但是城市数量超过了列表项的最大数量。

有什么建议或很酷的代码可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我刚发现以下blog帖子,其中至少看起来与您想要的内容相近。

他们使用以下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方法上调用级联函数以实现级联行为。

他们将一个自动完成扩展器的内容级联到另一个,而不是采用级联下拉列表,但希望您可以重用一些想法。