《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文件中的,请问这可以吗?
如果可以的话请贴出来需要怎么改动,我运行可以立即给分结贴,
请不要给提示,因为我对代码还不太懂,以后我会学者其中的原理,但现在比较急,我希望能直接知道结果
期待结果中,先谢谢各位前辈!
一个是包含了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文件中的,请问这可以吗?
如果可以的话请贴出来需要怎么改动,我运行可以立即给分结贴,
请不要给提示,因为我对代码还不太懂,以后我会学者其中的原理,但现在比较急,我希望能直接知道结果
期待结果中,先谢谢各位前辈!
解决方案 »
- textbox在ipone上的现实问题
- 我配置文件时,如下的公钥从哪里取得来的?PublicKeyToken=b03f5f7f11d50a3a
- 关于RadioButtonList的Enabled
- asp.net /php 何去何从?
- 一个中型招聘网站的数据库关系分析!!求教
- 新手问个关于数据显示的问题20分!
- 求助:新装的.net无法创建项目或打开一个项目
- ASP。NET父页面给子页面传值 不用?传值
- 搞。net开发一年多了,现在公司要我们学习c++,郁闷!!
- 为什么嵌套在DataGrid模板列中的DataGrid不能有修改列?
- 关于AJAXupdatepanel/timer触发google map api(javascript)更改地图内容的问题
- js 删除节点的问题
{
//a的方法
}
class b
{
//b 的方法
}
<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;
}