代码之家  ›  专栏  ›  技术社区  ›  Colin

滚动时AutoCompleteXtender定位菜单不正确

  •  2
  • Colin  · 技术社区  · 14 年前

    我们有一个链接到文本框的AutoCompleteXtender。两个控件都放在UpdatePanel中,UpdatePanel使用Javascript库(Ext.BasicDialog)显示为弹出对话框。

    问题是,当用户在弹出窗口中滚动时,AutoCompleteXtender会在错误的位置显示其菜单。它看起来像是从弹出窗口顶部的可见距离,并从弹出窗口的内部html顶部定位菜单(不可见)

    我们使用的是AjaxControlToolkit的1.0.20229.20821版本,目标是ASP.NET Framework版本2.0。

    我尝试通过将以下Javascript附加到OnClientShown事件来修复菜单,但它的作用基本相同:

    function resetPosition(object, args) {
    
        var tb = object._element; // tb is the associated textbox.
        var offset = $('#' + tb.id).offset();
    
        var ex = object._completionListElement;
        if (ex) {
            $('#' + ex.id).offset(offset);
        }  
    } 
    
    3 回复  |  直到 14 年前
        1
  •  5
  •   Colin    14 年前

    我通过设置 position:relative

        2
  •  4
  •   pinder    12 年前

    添加一个空的 <div id="AutoCompleteContainer"></div> 元素位于AutoCompleteXtender之后。在AutoCompleteXtender中,添加指向此容器的属性, CompletionListElementID="AutoCompleteContainer" . 列表项应该包含在该div中。

        3
  •  0
  •   Andrew Robinson    9 年前

    我知道这是一个旧的职位,但认为这个信息可能会帮助别人。Ajaxtoolkit现在有一个更新的版本15.x(2015年4月),它修复了这个问题。据我所知,CompletionListElementID属性不久前就被弃用了,至少在不同的版本中似乎表现不同。我把我的参考资料升级到了15.x版本,然后它就开始按需要工作了。