4

Start コントロールに9:00を入力し、 Finishに16:00を入力すると、以下のコードは検証に失敗します。

日付のない時間に ASP.NET バリデーターを使用する方法を知っている人はいますか?

Start <asp:TextBox ID="txtStart" runat="server" /> (hh:mm)
<br />
Finish <asp:TextBox ID="txtFinish" runat="server" /> (hh:mm)
<br />
<asp:CompareValidator
    id="cpvFinish"
    ControlToValidate="txtFinish"
    ControlToCompare="txtStart"
    Operator="GreaterThanEqual"
    Type="Date"
    Display="Static"
    EnableClientScript="true"
    ErrorMessage="Finish time must be later than the start time."
    runat="server" />

PS-代わりに CustomValidator を簡単に使用できることはわかっていますが、このバリデーターで処理できるように思えます。

4

3 に答える 3

8

これはどうやらできないようです。

記録のために; カスタムバリデーターを使用しました。

編集: 誰か (つまり alhambraeidos) が必要な場合に備えて、これが私のカスタム バリデータ コードです。このコードは、サンプル コントロール名 (txtStart & txtFinish) をアプリの実際の名前 (txtReady & txtClose) に置き換えることに注意してください。

try
{
    // parse & compare dates
    string randomDt = "01/01/2000 ";
    args.IsValid = DateTime.Parse(randomDt + txtClose.Text) > DateTime.Parse(randomDt + txtReady.Text);
}
catch(Exception /*ex*/)
{
    // exception is assumed to be invalid times entered
    args.IsValid = false;
}
于 2009-02-11T20:32:08.823 に答える
0

比較バリデータに使用できる型は次のとおりです: Stingrg、Integer、Double、Date (時間なし) Currency

于 2009-01-30T21:36:28.653 に答える
0

Type プロパティを String に変更してみてください。うまくいくはずです。

于 2009-01-30T21:35:48.547 に答える