這裏的處理:我構建了一個自定義驗證器,只應在文本框中輸入時觸發。當它觸發時,它應測試以查看框中的文本是否爲整數,否則將拒絕它。它不會開火,但我試圖找出原因。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