2

AutoCompleteExtenderがTextBoxにリンクされています。両方のコントロールはUpdatePanel内に配置され、UpdatePanelはJavascriptライブラリ(Ext.BasicDialog)を使用してポップアップダイアログとして表示されます。

ポップアップはページ上のdivであり、個別のウィンドウではありません。問題は、ユーザーがポップアップ内をスクロールすると、AutoCompleteExtenderがメニューを間違った場所に表示することです。ポップアップの上部から目に見える距離を取り、ポップアップの内側のhtml(表示されていない)の上部からメニューを配置しているように見えます

AjaxControlToolkitのバージョン1.0.20229.20821を使用しており、ASP.NET Frameworkvewrsion2.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);
    }  
} 
4

3 に答える 3

5

position:relativeTextBoxとオートコンプリートエクステンダーを含むdivに設定することで、これを修正しました。エクステンダーは、ポップアップパネル内で配置するために間違った要素を使用していたに違いありません。

于 2010-11-18T13:00:22.830 に答える
4

<div id="AutoCompleteContainer"></div>AutoCompleteExtenderの直後に空の要素を追加します。AutoCompleteExtenderで、このコンテナを指す属性を追加しますCompletionListElementID="AutoCompleteContainer"。その場合、リストアイテムはそのdivに含まれている必要があります。

于 2012-10-30T17:02:00.590 に答える
0

私はこれが古い投稿であることを知っていますが、この情報は他の誰かを助けるかもしれないと思いました。現在(2015年4月)Ajaxtoolkitの新しいバージョン15.xがあり、この問題が修正されています。私が読んだところによると、CompletionListElementIDプロパティはしばらく前に非推奨になり、少なくともバージョンによって動作が異なるようです。参照を15.xバージョンにアップグレードしたところ、必要に応じて機能し始めました。

于 2015-04-28T06:58:32.723 に答える