2 つの異なる条件に対して組み込みのバリデーターを使用して入力用の asp.net テキスト ボックスを検証する方法はありますか? テキストボックスは日付ピッカーと組み合わせて使用 され、現在、検証するために次のようなRegularExpressionValidatorがあります。
<asp:TextBox ID="tbStartDate" runat="server" Width="100" CssClass="TextCompact">yyyy</asp:TextBox>
<asp:HyperLink ID="hlStartDate" runat="server" ImageUrl="~/Images/iconCalendar.gif"></asp:HyperLink><br />
<asp:RegularExpressionValidator ID="revStartDate" ControlToValidate="tbStartDate"
CssClass="TextCompact" runat="server" ErrorMessage="* Invalid Date" ValidationExpression="^(\d{4})$" />
無効な日付が入力されるたびに起動します。日付ピッカーを使用するか、日付文字列を入力できます。
問題は、テキスト ボックスにデータがある場合にのみ検証したいということです。テキスト ボックスが空の場合は、検証せずに通過させます。
これは可能ですか、それともカスタムのクライアント側の検証が必要ですか?
ありがとう、リショー。
アップデート:
BaseValidator クラスから派生した独自のバリデーター クラスを作成して接続することにしましたが、コンパイラ エラーが発生します。
namespace Abcdefg1234
{
public class Custom_Validator : BaseValidator
{
public Custom_Validator()
{
}
protected override bool EvaluateIsValid()
{
String value = this.GetControlValidationValue(this.ControlToValidate);
return ValidateControls(value.Trim());
}
public static bool ValidateControls(string value)
{
if(Regex.IsMatch(value, @"^(\d{4})$") == true)
return true;
else if(value == "")
return true;
else
return false;
}
}
}
次に、ページ ディレクティブ タグを含めました。
<%@ Register TagPrefix="Cv" Namespace="Abcdefg1234" TagName="CustomValidaitonX" %>
そして実際のタグ:
Cv:Custom_Validator ID="cvtbStartDate" ControlToValidate="tbStartDate" runat="server" ErrorMessage="* Invalid Date" />
不明なサーバー タグが表示されます。何か案は?ありがとう。