4

position: absolute を持つ ajaxtoolkit AutoCompleteExtender があります。position: relative で div 内に配置しました。これにより、位置が div ではなくウィンドウの左上を基準とする Chrome/Safari を除くすべてのブラウザーで、エクステンダー ドロップダウンが完全に配置されます。

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;
}
4

1 に答える 1

6

<div>指定された属性を持つエクステンダーの直後にプレーンな HTML 要素を追加しid、このid値をエクステンダーのCompletionListElementIDプロパティに使用してみてください。

idをエクステンダーに渡すと、項目が<div>要素として挿入されます。したがって、有効な HTML を維持する<div>のではなく、プレーンな HTML を追加します。<ul>

于 2011-12-01T09:28:12.740 に答える