|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。办理|控件|成绩在论坛上看到有关CustomValidator控件考证控件值为空的成绩http://community.csdn.net/Expert/topic/3772/3772658.xml?temp=.9461634,恰好我也碰到过,办理办法就是不要指定CustomValidator控件的ControlToValidate,如许在提交的时分回举行考证
,代码以下:
<%@PageLanguage="C#"AutoEventWireup="True"%>
<html>
<head>
</head>
<body>
<formrunat="server"id="Form1">
<asp:TextBoxid="Text1"
runat="server"/>
<asp:CustomValidatorid="CustomValidator1"
ClientValidationFunction="ClientValidate"
Display="Static"
ErrorMessage="不克不及为空!"
ForeColor="green"
Font-Name="verdana"
Font-Size="10pt"
runat="server"/>
<br/>
<asp:Buttonid="Button1"
Text="Validate"
runat="server"/>
</form>
</body>
</html>
<scriptlanguage="javascript">
<!--
functionClientValidate(sender,args)
{
if(Form1.Text1.value.length<=0)
{
args.IsValid=false;
}else{
args.IsValid=true;
}
}
//-->
</script>
成绩剖析:
与一切别的考证控件相似(RequiredFieldValidator除外),假如输出字段为空,则以为CustomValidator无效。以是形成CustomValidator没有举措考证空值,让ControlToValidate为空,客户端函数每次实验提交时总会触发一次,如许就能够完成在提交时考证控件为空
以下信息摘自MSDN:http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfSystemWebUIWebControlsCustomValidatorClassTopic.asp
注重假如输出控件为空,则不会挪用任何考证函数,而且考证将乐成。利用RequiredFieldValidator控件请求用户在输出控件中输出数据。
能够在不设置ControlToValidate属性的情形下利用CustomValidator控件。这类情形一般呈现在考证多个输出控件或是考证没法与考证控件一同利用的输出控件(如CheckBox控件)时。这类情形下,传送给ServerValidate事务的事务处置程序及客户端考证函数的arguments参数的Value属性将一直包括一个空字符串("")。可是,符合时仍将挪用这些考证函数,以断定服务器和客户真个无效性。若要会见举行考证的值,您必需经由过程编程体例援用所要考证的输出控件,然后从响应的属性中检索该值。比方,若要考证服务器上的CheckBox控件,请不要设置考证控件的ControlToValidate属性,并将以下代码用于ServerValidate事务的处置程序。
用处:
您大概会说既然不为空,干吗不必RequiredFieldValidator,固然是有缘故原由的,好比我有个复选框,我想完成只要选择这个复选框的时分才请求某个文本框不为空,如许我就能够用上面的代码了:
<%@PageLanguage="C#"AutoEventWireup="True"%>
<html>
<head>
</head>
<body>
<formrunat="server"id="Form1">
<asp:CheckBoxid="CheckBox1"runat="server"></asp:CheckBox>
<asp:TextBoxid="Text1"
runat="server"/>
<asp:CustomValidatorid="CustomValidator1"
ClientValidationFunction="ClientValidate"
Display="Static"
ErrorMessage="不克不及为空!"
ForeColor="green"
Font-Name="verdana"
Font-Size="10pt"
runat="server"/>
<br/>
<asp:Buttonid="Button1"
Text="Validate"
runat="server"/>
</form>
</body>
</html>
<scriptlanguage="javascript">
<!--
functionClientValidate(sender,args)
{
if(Form1.CheckBox1.checked&&Form1.Text1.value.length<=0)
{
args.IsValid=false;
}else{
args.IsValid=true;
}
}
//-->
</script>
</p>写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们) |
|