将使用服务器端验证代码(如果有的话)进行验证。Validate 按钮会触发一个对 Web 服务器的带外调用,并只验证指定的输入控件。在它返回时,您就会知道哪些值已经通过了服务器的验证。例如,在图 1 中,您将在尝试提交其余数据之前了解到是否已经采用了该用户 ID。
图 1 带有具有回调功能验证的输入窗体 图 2 显示了该页面的源代码。正如您可以看到的那样,它包含了一个 HTML 服务器窗体、一些文本框(每个文本框都绑定到一个标准的验证控件)以及该自定义 CallbackValidator 控件的一个实例。此控件实际上负责创建并显示 Validate 按钮。
该控件如何工作 该 CallbackValidator 控件从 WebControl 继承,并实现了 INamingContainer 接口。另外,它还实现了 ICallbackContainer 和 ICallbackEventHandler 接口,以便获得回调支持。
ICallbackContainer 接口需要方法 GetCallbackScript 按照下列方式声明:
string GetCallbackScript(IButtonControl buttonControl, string argument)
GetCallbackScript 采用两个参数。第一个是对预期要触发回调的页面控件的引用。第二个参数(字符串)表示调用方希望传递给方法以帮助构建输出的任何上下文。从名称可以看出,GetCallbackScript 方法使用 JavaScript 函数调用来准备和返回字符串,以便附加到指定的按钮控件来触发远程调用。
该按钮控件参数使您能够精确地指定要对控件 UI 中的哪个按钮进行 JavaScript 调用。该示例 CallbackValidator 控件只有一个可单击按钮;而 GridView 控件则具有很多可单击按钮,每个按钮都用于页导航或标头中的一个链接按钮。在 ASP.NET 2.0 中,所有充当窗体中按钮角色的控件都需要实现一个新的接口 — IButtonControl。该接口在
上一页123