我有一个网页,用户可以在其中输入他们的地址。他们将在级联下拉列表中选择他们的国家和地区。我想为他们的城市提供一个自动完成文本框,但我希望对国家和地区选择具有上下文敏感性。我本来会使用另一个级联下拉列表,但是城市数量超过了列表项的最大数量。
有什么建议或很酷的代码可以帮助我吗?
答案 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方法上调用级联函数以实现级联行为。
他们将一个自动完成扩展器的内容级联到另一个,而不是采用级联下拉列表,但希望您可以重用一些想法。