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