<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="昵称:"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"
Width="166px" ontextchanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox>
<asp:CustomValidator ID="cv" runat="server" ControlToValidate="TextBox1"
ErrorMessage="昵称已存在,换个试试!" ForeColor="#FF3300"
onservervalidate="cv_ServerValidate"></asp:CustomValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="提交" />
</div>
</form>
我想让他自动检测昵称在数据库中 是否已存在?该怎么办?
这是 代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;public partial class CustomValidator : System.Web.UI.Page
{
string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{ } protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if (TextBox1.Text!="")
{
cv.Enabled = true;
cv.Visible = true;
}
}
protected void cv_ServerValidate(object source, ServerValidateEventArgs args)
{
string name = TextBox1.Text;
using (SqlConnection con=new SqlConnection(conStr))
{
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from Name where Name='"+name+"'";
con.Open();
int result = com.ExecuteNonQuery();
if (result>0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
using (SqlConnection con=new SqlConnection(conStr))
{
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into Name(Name) values('"+name+"')";
con.Open();
int result = com.ExecuteNonQuery();
if (result>0)
{
Response.Write("<script>window.alert('加入成功!')</script>");
}
con.Close();
}
}
}
我就是不能自动检测 一定要单机按钮之后 customvalidator 才会显示是否已存在!
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="昵称:"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"
Width="166px" ontextchanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox>
<asp:CustomValidator ID="cv" runat="server" ControlToValidate="TextBox1"
ErrorMessage="昵称已存在,换个试试!" ForeColor="#FF3300"
onservervalidate="cv_ServerValidate"></asp:CustomValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="提交" />
</div>
</form>
我想让他自动检测昵称在数据库中 是否已存在?该怎么办?
这是 代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;public partial class CustomValidator : System.Web.UI.Page
{
string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{ } protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if (TextBox1.Text!="")
{
cv.Enabled = true;
cv.Visible = true;
}
}
protected void cv_ServerValidate(object source, ServerValidateEventArgs args)
{
string name = TextBox1.Text;
using (SqlConnection con=new SqlConnection(conStr))
{
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select * from Name where Name='"+name+"'";
con.Open();
int result = com.ExecuteNonQuery();
if (result>0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
using (SqlConnection con=new SqlConnection(conStr))
{
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into Name(Name) values('"+name+"')";
con.Open();
int result = com.ExecuteNonQuery();
if (result>0)
{
Response.Write("<script>window.alert('加入成功!')</script>");
}
con.Close();
}
}
}
我就是不能自动检测 一定要单机按钮之后 customvalidator 才会显示是否已存在!
解决方案 »
- <a href="javascript:void(0)" onclick="window.external.AddFavorite(window.locatio
- asp.net 数据绑定 datalist
- 【呂津】泛型集合模板類型為類時(List<Class>)的增加、篩選操作!
- 请问Asp.net中,可以使用什么控件来打印。又没有相关的控件呢?
- ●●●●呵呵又来做好人 给出一个 DIV模拟对话框(alert confirm)的完整例子●●●●
- 来者有分!问了半个月的datagrid问题
- js中, 当a=6,b=007,怎么才能得到结果为0013,我现在用 c=parseFloat(a)+parseFloat(b),结果是13,谢谢了
- 急,没有多少分了。帮帮忙,谢谢!!
- 如何在未以参数传入的情况下得到当前页的Page对象?
- 很奇怪的问题
- 求助 大家帮帮忙
- asp.net打印,各种打印
使用Ajax,在onblur的时候发出ajax请求,去数据库中查询并返回结果给前台。
能具体给个代码吗? 我用的是customvalidator 用户自定义控件 而且全部采用 asp控件 而不是input控件的怎么onblur? 好像只有TextChanged事件吧!!
TextChanged每敲一个字就要查一遍数据库,如果不觉得数据库压力大用他也行。代码很简单的。后台ashx就是查询数据库。前台通过js将参数传给指定的ashx。