残念ながら、これは AutoCompleteExtender の既存のインスタンスでは不可能です。以下のように、あなたが興味を持っているかもしれないいくつかの方法があります
var x = $find("AutocompleteBehaviorID");//find the instance
x.get_completionListElementID();//get the ID of target textbox
x.set_completionListElementID();//set the ID of target textbox has no effect though :(
x._completionListElement();//direct access to DOM element that acts as target
ここでの問題は、初期化されたバージョンが、コントロールツールキットのフェーズ中に追加のイベントをターゲットテキストボックスに添付しているようですinit
(クライアント側にもinit
フェーズがあります)。初期化されたバージョンがターゲットとして変更されると(やりたいように)、これらのイベントなどが追加されないためkeypress
、blur
変更は表示されません。ただし、JavaScript を知っている場合は、以下を実行して任意のテキスト ボックスで動作させることができます。
$create(Behavior,{properties},{events},interfaces,target);
どこ
行動
AjaxControlToolkit.AutoCompleteBehavior
プロパティ
以下のようにJavaScriptオブジェクトです(プロパティは他にもありますが、これらで十分です
{
"completionInterval": 1,
"completionListElementID": "empty panel id",
"completionListItemCssClass": "css class name",
"delimiterCharacters": ";",
"highlightedItemCssClass": "css class name",
"id": "CLIENTSIDEID",
"minimumPrefixLength": 1,
"serviceMethod": "WebMethodName",
"servicePath": "AbsolutePath to asmx file"
}
イベント
利用可能なイベントが他にもあります
{
"itemSelected": jsFn,
"populated": jsFn
}
ターゲット
ターゲット要素が最も重要です。すべてのイベント、ベル、ホイッスルが引き付けられたのはこのテキスト ボックスです。
$get("ELEMENT ID")
以上で、JavaScript を使用してオートコンプリートのインスタンスをいつでも初期化できます。ID が存在しないことを確認してください。