多くのテキストボックスと入力するドロップダウンリストを備えたかなり大きな ASPX フォームがあります。ほとんどのテキストボックスには RequiredFieldValidator コントロールがあり、これらは問題なく機能します。
ただし、自宅、携帯電話、職場の電話番号用に 3 つのテキスト ボックスがあります。各テキストボックスはオプションですが、入力する場合、値は数値でなければなりません。この時点では、電話番号の形式を検証する必要はありません。数値であることだけを確認してください。
フィールドの 1 つのクライアント側コードは次のようになります。
<asp:Label ID="lblWorkPhone" runat="server" AssociatedControlID="txtWorkPhone" Text="<%$ Resources: Registration, WorkPhone %>" /><br />
<asp:TextBox ID="txtWorkPhone" runat="server" />
<asp:CustomValidator ID="validateWorkPhone" runat="server"
ValidationGroup="reg" ControlToValidate="txtWorkPhone" ForeColor="Red"
ErrorMessage="<%$ Resources: Registration, HomePhoneNumber %>"
Text="<%$ Resources: Registration, RequireMessage %>"
onservervalidate="validateWorkPhone_ServerValidate" />
サーバー側の検証方法は次のとおりです。
protected void validateWorkPhone_ServerValidate(object source, ServerValidateEventArgs args)
{
long temp = 0;
long.TryParse(txtWorkPhone.Text, out temp);
if (temp == 0)
{
args.IsValid = false;
validateWorkPhone.IsValid = true;
}
else
{
args.IsValid = true;
validateWorkPhone.IsValid = false;
}
}
私が知る限り、サーバー側の検証メソッドはまったく起動していません。ページ上の他のすべての検証コントロールは正常に機能しているようです。
誰でも助けることができますか?