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

ASP
分享一段代码show.asp?id=26变成show/?26的形式
多域名一网站时如果返回最原来的域名
[原创]完美解决ASP 不能更新。数据库或对象为只读。
5天学会asp
TSYS中生成静态页时溢出: ''CInt''
对象标记具有无效的 ''MSWC.MyInfo'' ProgID
[原创]随机增加网站点击的一个不错的方法
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
反SPAM新思路—换Z-BLOG的验证码!
七步倒┈→专用asp后门
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
使用ASP实现网站的“目录树”管理的代码
ShowPage 显示“上一页 下一页”等信息的封装代码
[原创]站长感慨asp编程究竟何去何从
响应对象 错误 ''ASP 0185 : 80020003'' 缺少默认属性
[原创]asp下用实现模板加载的的几种方法总结
[原创]asp获取URL参数的几种方法分析总结
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
ASP程序中输出Excel文件实例一则
ASP应用中如何限制同一表单被多次提交

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 122 ::
收藏到网摘: 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+下正常运行。