0

日付が有効かどうか、つまり将来ではないかどうかを検証し、正当な日付、つまり2012年3月32日が無効であることを確認しようとしています。私が現在持っているものは、日付が有効かどうかを確認するためだけに機能しますが、将来日付を配置するときに機能しません。また、誰かが2012年3月32日のような日付を入力すると、無効であると表示されますが、保存ボタンをクリックしても例外が発生するという問題があります。これにアプローチするための最良の方法は何ですか。

これが私のコードです:

<asp:TextBox ID="tbDate" runat="server" Text=""></asp:TextBox>
<asp:Image ID="imgCalendar" runat="server" ImageUrl="~/App_Themes/Sugar2006/images/Calendar_scheduleHS.png" ImageAlign="Middle" />
<asp:CalendarExtender ID="ce" runat="server" TargetControlID ="tbDate" PopupButtonID="imgCalendar" />        
<asp:MaskedEditExtender ID="mex" runat="server" 
                        TargetControlID="tbDate" 
                        Mask="99/99/9999" 
                        MaskType="Date"
                        MessageValidatorTip="true"
                        OnFocusCssClass="MaskedEditFocus"
                        OnInvalidCssClass="MaskedEditError" />
<asp:MaskedEditValidator ID="mev" runat="server" 
                        ControlToValidate="tbDate"
                        ControlExtender="mex" 
                        Display="Dynamic" 
                        InvalidValueMessage="This date is invalid!" Font-Bold="True" 
                        ForeColor="#D50000" />
<asp:RequiredFieldValidator runat="server" ID="DReq"
                        ControlToValidate="tbDate"
                        Display="None"
                        ErrorMessage="A Date is required." ValidationGroup="vgMyGroup"/>
<asp:ValidatorCalloutExtender runat="Server" ID="DReqE"
                        TargetControlID="DReq"
                        HighlightCssClass="validatorCalloutHighlight" />
4

2 に答える 2

1

私はに設定しValidationGroupました、MaskedEditValidatorそしてそれは私の問題を修正しました。また、将来の日付を許可しないように修正するために、.csファイル内で次のことを行いました。私の問題はすべて解決されました。ありがとう。:)

    protected void mev_Init(object sender, EventArgs e) {
        ((MaskedEditValidator)sender).MaximumValue = DateTime.Now.ToString("MM/dd/yyyy");
    }
于 2012-04-06T13:41:21.407 に答える
0

CustomValidatorClientValidationFunctionを使用して、カスタムjavascript関数を指すこともできます。

そのような関数は次のようになります±

関数validateField(source、args){args.IsValid = true; }

javascriptでは、以下を使用して日付が有効かどうかを確認できます±

var timestamp = Date.parse(textBoxValue)

if (isNaN(timestamp)==false)
{
    var d = new Date(timestamp);

}

次に、現在の日付と比較dして、将来の日付であるかどうかを確認できます。

于 2012-04-04T20:17:44.923 に答える