当前位置: 首页 > 图文教程 > 网络编程 > ASP > 从ASP迁移至ASP+--CustomValidator控件

ASP
ASP调用ORACLE存储过程并返回结果集
用ASP实现网页BBS
关于Global.asa文件的深入研究与session变量失效提示的具体方法
简易ASP+注册系统
防护手册:如何防止ASP木马在服务器上运行
用Visual Basic实现多画面播放功能之二
如何增强ASP程序性能(1)
如何增强ASP程序性能(2)
如何增强ASP程序性能(3)
ASP备份数据库
二十八条改善 ASP 性能和外观的技巧
在Form域中Post大于100K的数据
如何使用ASP制作模似动态生长的表单?
Microsoft IIS 真的如此「不安全」吗?(1)
Microsoft IIS 真的如此「不安全」吗?(2)
Microsoft IIS 真的如此「不安全」吗?(3)
Microsoft IIS 真的如此「不安全」吗?(4)
Microsoft IIS 真的如此「不安全」吗?(5)
关于页面和代码分离
ServerVariables 对路径的操作

从ASP迁移至ASP+--CustomValidator控件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 30 ::
收藏到网摘: n/a

      
     有了CustomValidator控件,我们可以书写自己的客户端或服务器的验证代码,从而进行验证。在这个站点的原始版本中,我们将输入表格中的数据传递给cookie.asp页,在该页执行验证后,若产生错误便传回错误代码。为了简化整个过程,我们打算将数据传回给signup.aspx页,在那儿执行验证,如果一切ok就进行重定向。这样一来,所有的验证都被集中在一个ASP+页面上了(而在ASP中,只能集中在cookie.asp页上)。
  
     以下示例如何用CustomValidator来检验用户名:
  
     Function ValidateUserName(ByVal objSource As Object, ByVal strUserName As String) As Boolean
  
     Dim dscUser As ADODataSetCommand
  
     Dim dsUser As New DataSet
  
     Dim dvUser As DataView
  
     Dim strSQL As String
  
     strSQL = "SELECT UserName FROM Students " & _
  
     "WHERE UserName = '" & strUserName & "'"
  
     dscUser = New ADODataSetCommand(strSQL, Connect.ConnectToDB())
  
     dscUser.FillDataSet(dsUser, "User")
  
     UserGrid.DataSource = dsUser.Tables("User").DefaultView
  
     UserGrid.DataBind()
  
     If UserGrid.Items.Count > 0 Then
  
     ValidateUserName = False
  
     Else
  
     ValidateUserName = True
  
     End If
  
     dvUser = New DataView(dsUser.Tables("User"))
  
     End Function
  
     < /script>
  
     [page stuff...]
  
     < asp:DataGrid id="UserGrid" visible=false runat=server />
  
     < asp:CustomValidator runat=server
  
     ControlToValidate = "txtUserName"
  
     onServerValidationFunction = "ValidateUserName"
  
     errorMessage = "The User Name you chose is taken. Please chose another."
  
     ForeColor = "#CC3300"
  
     display = "dynamic"
  
     />
  
     该控件在表格提交之后,触发ValidateUserName函数。接着使用DataSet对数据库进行查询,看是否存在与用户请求的用户名同名的记录。如果该用户名已被占用,则返回一条记录,否则不返回记录。为了进行检验,我们将结果绑定到一个隐藏的DataGrid(将visible属性设为false),然后检验它的Items集合,以及Count属性。如果Count大于0,则请求的用户名已存在。如果用户名已存在,我们返回一条信息;否则,我们继续处理表格。
  
     请注意这是种迂回的验证方式。实际上有一个DataReader控件是专门针对这种功能设计的。DataReader可以无须绑定数据到DataGrid而进行这种类型的验证。然而在ASP+的Alpha版本中,DataReader存在着一个bug,而且不能正常工作。这个问题在Beta1版中会得到解决。我们使用的迂回方式的代码可以让本站点在基于.NET框架的ASP+下正常运行。