Webkit中AutoCompleteExtender位置错误

时间:2011-12-01 09:13:31

标签: asp.net css ajax ajaxcontroltoolkit autocompleteextender

我有一个ajaxtoolkit AutoCompleteExtender,其位置为:absolute。我把它放在一个位置为div的div中。这使得扩展程序下拉放置在所有浏览器上都是完美的,除了在Chrome / Safari上,其位置相对于窗口的左上角而不是div。

当我使用与为AutoCompleteExtender生成的HTML相同的css类和内联样式放置另一个ul时,定位在Chrome中正常工作。因此扩展器有一些特定的东西使它在HTML代码的底部呈现(在结束标记之前,因此在计算其位置时不使用div作为它的父级。

我有什么想法可以解决这个问题吗?

代码:

<div class="searching">
<ajaxToolkit:AutoCompleteExtender 
            runat="server" 
            ID="biznameOrCategoryAutoComplete" 
            TargetControlID="txtBizNameOrCategory"
            ServicePath="~/AutoComplete.asmx"
            ServiceMethod="GetBiznameOrCategoryCompletionList"
            MinimumPrefixLength="1" 
            CompletionInterval="1000"
            EnableCaching="true"
            CompletionSetCount="10" 
            CompletionListCssClass="autocomplete_completionCompyNameListElement" 
            CompletionListItemCssClass="autocomplete_listItem" 
            CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
            ShowOnlyCurrentWordInCompletionListItem="true">
        </ajaxToolkit:AutoCompleteExtender>
</div>

CSS:

.searching {
margin-left:5px;
padding-top:10px;
width:366px;
position: relative;
}
.autocomplete_completionCompyNameListElement {
background: #fff;
font-family:Arial, Helvetica, sans-serif;
font-size: 17px;
width: 340px !important;
left: 20px !important;
border: 1px solid #d9d9d9;
font-size: 12px;
top: 48px !important;
padding: 2px 4px !important;
}

1 个答案:

答案 0 :(得分:6)

尝试在具有spcified <div>属性的扩展程序后添加纯HTML id元素,并将此id值用于扩展程序的CompletionListElementID属性。

当您将id传递给扩展程序时,它会将项目作为<div>元素插入。因此,添加纯HTML <div>而不是<ul>可以维护有效的HTML。