Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript在AutoCompleteXtender上重新显示结果列表_Javascript_Asp.net_Ajaxcontroltoolkit_Autocompleteextender - Fatal编程技术网

通过javascript在AutoCompleteXtender上重新显示结果列表

通过javascript在AutoCompleteXtender上重新显示结果列表,javascript,asp.net,ajaxcontroltoolkit,autocompleteextender,Javascript,Asp.net,Ajaxcontroltoolkit,Autocompleteextender,我有一个正在运行的AutoCompleteXtender实施 我想要的是,如果我已经退出文本框,并且项目列表已经显示,我想从javascript代码中重新显示列表,而不必再次在文本框中写入内容(只需单击按钮或其他内容,根据文本框中的当前筛选值重新显示列表)。我知道如何从代码中获取AutoCompleteXtender Behavior对象,所以我只需要知道该对象上的javascript API,它使我能够重新显示列表 我已经尝试了以下评论中的建议,但不起作用: AutoCompleteEx.s

我有一个正在运行的AutoCompleteXtender实施

我想要的是,如果我已经退出文本框,并且项目列表已经显示,我想从javascript代码中重新显示列表,而不必再次在文本框中写入内容(只需单击按钮或其他内容,根据文本框中的当前筛选值重新显示列表)。我知道如何从代码中获取AutoCompleteXtender Behavior对象,所以我只需要知道该对象上的javascript API,它使我能够重新显示列表


我已经尝试了以下评论中的建议,但不起作用:

AutoCompleteEx.showPopup();
AutoCompleteEx._onTimerTick(AutoCompleteEx._timer, Sys.EventArgs.Empty);

我也尝试过中建议的方法,但不起作用:

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);
}
或者您可以在extender上将
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);
}

伟大的我用的是缓存,所以我直接用了你的第二个解决方案,效果很好。