《ASP.NET3.5揭秘》这本书中有个例子是讲自动检测用户名是否存在的自定义Ajax控件的,一共有三部分代码,
一个是包含了AjaxValidtor控件的代码,AjaxValidator.cs文件,
一个是包含AjaxValidator控件使用的JavsScript函数, AjaxValidator.js文件,
一个是asp.net页面文件,ShowAjaxValidator.aspx文件,
我想把第三个文件中的一段代码改写到ShowAjaxValidator.aspx.cs文件中,请问各位前辈要怎么改?
下面是第三个文件的部分代码
<%@ Page Language="C#" %>
<%@ Register TagPrefix="custom" Namespace="myControls" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Web.Configuration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    /// <summary>
    /// Validation function that is called on both the client and server
    /// </summary>
    protected void AjaxValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (UserNameExists(args.Value))
            args.IsValid = false;
        else
            args.IsValid = true;
    }
    /// <summary>
    /// Returns true when user name already exists
    /// in Users database table
    /// </summary>
    private bool UserNameExists(string userName)
    {
        string conString = WebConfigurationManager.ConnectionStrings["UsersDB"].ConnectionString;
        SqlConnection con = new SqlConnection(conString);
        SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM Users WHERE UserName=@UserName", con);
        cmd.Parameters.AddWithValue("@UserName", userName);
        bool result = false;
        using (con)
        {
            con.Open();
            int count = (int)cmd.ExecuteScalar();
            if (count > 0)
                result = true;
        }
        return result;
    }
    /// <summary>
    /// Insert new user name to Users database table
    /// </summary>
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        string conString = WebConfigurationManager.ConnectionStrings["UsersDB"].ConnectionString;
        SqlConnection con = new SqlConnection(conString);
        SqlCommand cmd = new SqlCommand("INSERT Users (UserName,FavoriteColor) VALUES (@UserName,@FavoriteColor)", con);
        cmd.Parameters.AddWithValue("@UserName", txtUserName.Text);
        cmd.Parameters.AddWithValue("@FavoriteColor", txtFavoriteColor.Text);
        using (con)
        {
            con.Open();
            cmd.ExecuteNonQuery();
        }
        txtUserName.Text = String.Empty;
        txtFavoriteColor.Text = String.Empty;
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Show AjaxValidator</title>
</head>
<body>上述代码中红色部分是我想改到ShowAjaxValidator.aspx.cs文件中的,请问这可以吗?
如果可以的话请贴出来需要怎么改动,我运行可以立即给分结贴,
请不要给提示,因为我对代码还不太懂,以后我会学者其中的原理,但现在比较急,我希望能直接知道结果
期待结果中,先谢谢各位前辈!

解决方案 »

  1.   

    一个cs文件写多个类按照如下写法using System;class a
    {
    //a的方法
    }
    class b
    {
    //b 的方法
    }
      

  2.   

    ajax异步获取数据,查询用户数据  
    <script type="text/javascript">  
      var xmlHttp;  
      function createXMLHttpRequest()  
      {  
      if(window.ActiveXObject)  
      {  
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
      }  
      else if(window.XMLHttpRequest)  
      {  
      xmlHttp = new XMLHttpRequest();  
      }  
      }  
      function CheckUserName()  
      {  
      var us=document.getElementById("txtname").value;  
      if(us!="")  
      {  
      createXMLHttpRequest();  
      var url= "RegistValidate.ashx?username="+escape(document.getElementById("txtname").value);  
      xmlHttp.open("GET",url,true);  
      xmlHttp.onreadystatechange=ShowResult;  
      xmlHttp.send(null);  
      }  
      }  
      function ShowResult()  
      {  
      if(xmlHttp.readyState==4)  
      {  
      if(xmlHttp.status==200)  
      {  
      var s;  
      s=xmlHttp.responseText;  
      alert(s);  
      }  
      }  
      }  
    </script>
    或CustomValidator验证用户名
    protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) 
        { 
    string userid=args.Value;
    }