問題 スクリプト ファイルのスクリプト コントロールを使用して、Ajax Toolkit オートコンプリート コントロールのイベントをキャプチャして割り当てるにはどうすればよいですか?
説明
基本的に、スクリプト コントロールを作成してテキスト ボックスとオートコンプリート コントロールを組み合わせ、オートコンプリート用の汎用コントロールを機能させることができました。次のステップは、アイテムを検索する際に処理イメージなどを追加することでした。それは十分に簡単に思えました。
protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors()
{
ScriptControlDescriptor desc = new ScriptControlDescriptor
("NDI.WebControls.Client.GenericAutoComplete", this.ClientID);
desc.AddProperty("autoCompleteID", autoComplete.ClientID);
return new ScriptDescriptor[] { desc };
}
そして、JavaScriptで通常:
initialize: function()
{
this._autoComplete = $get(this._autoCompleteID);
//this._autoCompleteID does have a value
this._autoCompleteClientPopulating =
Function.createDelegate(this, this.handleAutoCompleteClientPopulating);
$addHandler(this._autoComplete, "clientPopulating",
this._autoCompleteClientPopulating);
NDI.WebControls.Client.GenericAutoComplete.callBaseMethod(this, 'initialize');
},
これでうまくいくはずですが、うまくいきません。なんで?通常のコントロールのように、ページにレンダリングされるオートコンプリート コントロールが明らかに存在しないためです。したがって、$get 部分に到達すると、ID プロパティにテキスト プロパティがあるにもかかわらず、null になります。(つまり、コントロールは存在しません)
これは可能ですか、それとも OnXyz プロパティ サーバー側を使用してメソッドを割り当てる必要がありますか? 次のように:
autocomplete.OnClientPoplating = someScript;