
ASP.NET中的CustomValidator验证控件失效。
<asp:CustomValidatorID="CustomValidator1"runat="server"ControlToValidate="TextBox1"Er...
<asp:CustomValidator ID="CustomValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="用户名已存在" Display="Dynamic"
ValidateEmptyText="True" onservervalidate="CustomValidator1_ServerValidate"
></asp:CustomValidator>
后台:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
string cnnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(cnnstr);
String strCmd = "select count(*) from user where name= '" + args.Value + "'";
SqlCommand sqlCmd = new SqlCommand(strCmd, connection);
sqlCmd.Connection.Open();
int result = Convert.ToInt32(sqlCmd.ExecuteScalar());
if (result>0)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
sqlCmd.Connection.Close();
} 展开
ControlToValidate="TextBox1" ErrorMessage="用户名已存在" Display="Dynamic"
ValidateEmptyText="True" onservervalidate="CustomValidator1_ServerValidate"
></asp:CustomValidator>
后台:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
string cnnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(cnnstr);
String strCmd = "select count(*) from user where name= '" + args.Value + "'";
SqlCommand sqlCmd = new SqlCommand(strCmd, connection);
sqlCmd.Connection.Open();
int result = Convert.ToInt32(sqlCmd.ExecuteScalar());
if (result>0)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
sqlCmd.Connection.Close();
} 展开
展开全部
参考MSDN:
Page.IsValid 属性值 如果页验证成功,则为 true;否则为 false。
备注
若要使此属性返回 true,当前验证组中的所有验证服务器控件必须都验证成功。只有在已调用 Page.Validate 方法,或已在开始窗体处理的 ASP.NET 服务器控件的 OnServerClick 事件处理程序中将 CausesValidation 属性设置为 true 后才可以选中该属性。这些服务器控件包括 Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton 类。
如果强制使用 Validate 方法对验证组进行验证,那么指定验证组中的所有验证控件也必须都验证成功。
下面的代码示例演示如何使用 IsValid 属性设置条件语句。如果该属性返回 true,则 lblOutput 控件的 Text 属性被设置为“Page is valid!”。否则,它被设置为“Some of the required fields are empty.”。
C#代码:
void ValidateBtn_Click(Object Sender, EventArgs E) {
if (Page.IsValid == true) {
lblOutput.Text = "Page is Valid!";
}
else {
lblOutput.Text = "Some of the required fields are empty.";
}
}
Page.IsValid 属性值 如果页验证成功,则为 true;否则为 false。
备注
若要使此属性返回 true,当前验证组中的所有验证服务器控件必须都验证成功。只有在已调用 Page.Validate 方法,或已在开始窗体处理的 ASP.NET 服务器控件的 OnServerClick 事件处理程序中将 CausesValidation 属性设置为 true 后才可以选中该属性。这些服务器控件包括 Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton 类。
如果强制使用 Validate 方法对验证组进行验证,那么指定验证组中的所有验证控件也必须都验证成功。
下面的代码示例演示如何使用 IsValid 属性设置条件语句。如果该属性返回 true,则 lblOutput 控件的 Text 属性被设置为“Page is valid!”。否则,它被设置为“Some of the required fields are empty.”。
C#代码:
void ValidateBtn_Click(Object Sender, EventArgs E) {
if (Page.IsValid == true) {
lblOutput.Text = "Page is Valid!";
}
else {
lblOutput.Text = "Some of the required fields are empty.";
}
}

2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
展开全部
你的代码看不出有什么问题,因为只有server端验证,所以在提交时需要在server端代码中检查Page.IsValid,否则代码等于不起作用。
追问
能具体说说嘛?判断Page.IsValid是什么意思?
追答
楼下的说明和示例代码已经很清楚了,不再赘述。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在load事件中加一个if(!IsPostBack){}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询