这里的处理:我构建了一个自定义验证器,只应在文本框中输入时触发。当它触发时,它应测试以查看框中的文本是否为整数,否则将拒绝它。它不会开火,但我试图找出原因。ASP.NET自定义验证器没有触发
我把这个空白的部分C#类的主体:
protected void intValidate_Validate(object sender, ServerValidateEventArgs arg)
{
int num;
bool isNum = int.TryParse(arg.ToString(), out num);
if(arg.Value.Length>0){
if (isNum)
{
arg.IsValid = true;
}
else
{
arg.IsValid = false;
}
}
else{
arg.IsValid=true;
}
}
验证器的代码如下:
<div class="adult">
<label>Adults ($10)</label>
<asp:TextBox runat="server" ID="wAdultLunch" class="adultLunch" MaxLength="2" />
<asp:CustomValidator ID="intValidate" ControlToValidate="wAdultLunch" ErrorMessage="Invalid number" OnServerValidate="intValidate_Validate" Display="Static" runat="server" EnableClientScript="False" ValidateEmptyText="True"></asp:CustomValidator>
</div>
洞察力,将不胜感激!
编辑:我在下面附
<asp:Button ID="wSubmit" runat="server" Text="Submit" OnClientClick="return validateForm();" causesvalidation="true"/>
您可以包含引起回发的对象的标记吗?您在该对象上使用CausesValidation ='false'吗?另外,在继续之前,你是否在你的回发处理程序中检查IsValid? – 2012-07-31 21:45:07
我添加了该按钮的回发代码。我如何检查回发处理程序中的IsValid,我觉得我没有这样做。 – ijb109 2012-08-01 13:04:11
尽管它没有直接回答你的问题,你有没有考虑过使用''和'? –
freefaller
2012-08-01 13:10:19