通过javascript在AutoCompleteExtender上重新显示结果列表
Redisplay results list on AutoCompleteExtender through javascript
我有一个工作的AutoCompleteExtender实现。
我想要的是,如果我退出了文本框,并且项目列表已经消失,我想从javascript代码重新显示列表,而不必在文本框中再次写一些东西(只需根据文本框中的当前过滤值重新显示列表,点击按钮或其他东西)。我知道如何从代码中获得AutoCompleteExtender行为对象,所以我所需要的就是知道该对象上的javascript API,使我能够重新显示列表。
我已经尝试了这个建议在这个答案的评论,但不工作:
AutoCompleteEx.showPopup();
我也试过这个建议在这个答案,但不工作:
AutoCompleteEx._onTimerTick(AutoCompleteEx._timer, Sys.EventArgs.Empty);
编辑:
在对AutoComplete使用的后端代码进行了一些调查后,我认为问题可能在于一旦显示,它就会检查将来的调用,如果搜索框中的值自上次以来发生了变化,如果没有,它就不会再次显示。我还没有找到解决这个问题的方法。我尝试了不同的方法来重置值,然后再次设置值,但没有成功。
欣赏:)。那是一个有趣的任务。
function redisplayAutocompleteExtender() {
var extender = $find("AutoCompleteEx");
var ev = { keyCode: 65, preventDefault: function () { }, stopPropagation: function () { } };
extender._currentPrefix = "";
extender._onKeyDown.call(extender, ev);
}
或者您可以在扩展程序上将EnableCaching
属性设置为true
,并使用下面的脚本。此解决方案允许避免额外的web服务调用。
function redisplayAutoComplete() {
var extender = $find("AutoCompleteEx");
var textBox = extender.get_element();
textBox.focus();
var showSuggestions = function(){
extender._update.call(extender, textBox.value, extender._cache[textBox.value], true);
};
setTimeout(showSuggestions, 0);
}
相关文章:
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- JavaScript循环无法正确计算/显示结果
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- BMI计算器以Javascript显示结果
- 在表中显示结果
- onchange选择get value并执行查询,然后在同一页面上显示结果
- 搜索XML文件并使用javascript显示结果
- Moment.js不显示结果
- 使用jQuery延迟表单输入,并在延迟后在同一页面上显示结果
- 防止 PHP 在新页面中显示结果
- jquery jqgrid 不显示结果,具体取决于 JSON 对象中的参数
- Angular-如何显示结果,仅在未选中时显示
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- jqueryajax帖子将我发送到操作页面,并且不会显示结果数据
- 添加两个数字,并使用Javascript在文本框中显示结果
- 接受用户输入,与JSON数据匹配,并以javascript显示结果
- 自动完成 JQuery 不显示结果
- 控制台.log或显示结果的函数
- 提交表单,使用脚本处理信息,并在同一页面上显示结果
- AJAX 实时搜索仅当结果以相同的第一个字母开头时才显示结果