button.OnClientClick = js; // ASP.NET 2.0
与该验证按钮相关联的代码是通过一个包装在 ICallbackContainer 接口中的特定方法获取的。请注意,截止到 Beta 1,ICallbackContainer 接口的使用并不是必须的,但是使用它确实有助于保持代码的简洁。在上个月的示例中,我没有使用该接口,甚至在讨论脚本回调的 MSDN Beta 1 文档中根本没有提到该接口。尽管如此,从脚本回调获益的 ASP.NET 控件(大多为 GridView)都会实现该接口。使用 ICallbackContainer 接口的唯一组件就是该控件本身,这就意味着您可以轻松编写一个具有回调功能但不使用该接口的控件。
GetCallbackScript 返回的 JavaScript 函数调用来自以下语句:
Page.GetCallbackEventReference(
this, args, "CallbackValidator_UpdateUI", "null"));
第一个参数 (this) 表示当前控件,它在发出的请求中设置 CALLBACKID 域。第二个参数 (args) 为服务器端 RaiseCallbackEvent 方法的输入字符串。第三个参数为 JavaScript 回调函数的名称,用于处理 RaiseCallbackEvent 方法的输出。最后,第四个参数在这里为空,它表示一个作为回调函数上下文传递的 JavaScript 对象。
CallbackValidator 控件必须确保 JavaScript 回调是在承载页中定义的,并且必须决定该 args 参数的格式和内容。RaiseCallbackEvent 实现只需要来自其客户端调用方的一种类型的信息:要测试的验证器列表。下面是将所有验证器 ID 串联到一个由竖杠分隔的字符串中的代码:
文章来源于领测软件测试网 https://www.ltesting.net/