Задача
Как получить и назначить события в элементе управления автозаполнением 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 имеет свойство text. (Т.е. элемент управления не существует)
Возможно ли это сделать или мне нужно использовать сторону сервера свойств OnXyz, чтобы назначить метод? Как в:
autocomplete.OnClientPoplating = someScript;