我怎么用脚本控制自动完成控制脚本侧(ASP.Net)
-
19-08-2019 - |
题
<强>问题强> 如何使用在脚本文件的脚本控制捕获和分配上的Ajax工具包自动完成控件的事件?
<强>解释强>
我基本上创建了一个脚本控制相结合的文本框,并自动完成控制,这样我可以有一个自动完成工作的通用控制。下一步是添加的东西像处理图像,同时它搜索其项目。它似乎很容易。
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');
},
现在这个应该工作,但事实并非如此。为什么?因为显然没有呈现到页面像一个正常的控制没有自动完成控件会。所以,当它到达$得到部分尽管有一个text属性中的ID属性谈到了空。 (IE控制不存在)
这是可能做或我必须使用OnXyz属性服务器侧分配的方法?如:
autocomplete.OnClientPoplating = someScript;
解决方案
<强> ANSWER 强>
Booyah发现它。原来,自动完成有一个内置的方式来访问它的事件在javascript:
服务器端,你必须设置BehaviorID:
autoComplete.BehaviorID = "autoCompleteBehavior";
和然后将其设置在GetScriptDescriptors方法:
protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors()
{
ScriptControlDescriptor desc = new
ScriptControlDescriptor("NDI.WebControls.Client.GenericAutoComplete", ClientID);
desc.AddProperty("autoCompleteID", autoComplete.BehaviorID);
return new ScriptDescriptor[] { desc };
}
当然你要添加的属性脚本侧,以捕获价值,一旦你做,你必须使用查找得到它。然后,你必须创建事件处理程序:
this._autoComplete = $find(this._autoCompleteID);
this._onAutoCompletePopulating =
Function.createDelegate(this, this.handleOnAutoCompletePopulating);
最后使用内置的事件设定部在自动完成控制(行为对象):
this._autoComplete.add_populating(this._onAutoCompletePopulating);
和起重臂,它的设置。
不隶属于 StackOverflow