4

telerik:RadDatePickerコードビハインドでMaxDateをtodayに設定することで、ユーザーが将来の日付を選択できないように制限しています。これは完全に正常に機能します。ただし、ユーザーが今日よりも大きい日付を入力すると、!が表示されます。以下に示すように、日付ピッカーで:

ここに画像の説明を入力してください

代わりに、ユーザーに「将来の日付は許可されていません」というエラーメッセージを表示したいのですが、どうすればこれを実現できますか?以下は既存のコードです。

<telerik:RadDatePicker CssClass="cssDate" ID="fromDate" runat="server" 
 Skin="Vista">
 <DateInput ID="DateInput1" runat="server" LabelCssClass="datePick" Skin="Vista">
  </DateInput>
 <Calendar ShowRowHeaders="false" ID="Calendar1" runat="server" UseRowHeadersAsSelectors="False" UseColumnHeadersAsSelectors="False"
ViewSelectorText="x" Skin="Vista">
</Calendar>
<DatePopupButton CssClass="rcCalPopup"></DatePopupButton>
 </telerik:RadDatePicker>

そして、私がこれの最大日付を設定した場所の背後にあるコード:

  fromDate.MaxDate = DateTime.Now;
4

4 に答える 4

4

何日も調査しておじいちゃんグーグルに尋ねた後、彼は私にtelerik公式フォーラムへのリンクを提供しました。そこで彼らはこれができないことを確認しました。

私が言いたいことへのリンク。

返信には、「元の実装は直感的ではなかったため、実際にはエラー処理ロジックを少し変更しました。ガベージ入力が入力された場合、または範囲外の日付が選択された場合、コントロールは内部的にその値をnullに設定します。表示される入力フィールドはその内容をクリアしませんが、有効な値が入力されるまで無効なスタイルで表示します。ただし、入力コンポーネントのクライアント側のOnErrorイベントハンドラーで発生する可能性のある解析エラーを処理する必要があります(別の例はここにあります)。 )入力に有効な日付が含まれていないかのように、空の値がサーバーに送信され、この機能をオフにすることはできません。 "

この情報がSOの他の人に役立つことを願っています:)。

于 2012-07-09T06:56:45.787 に答える
0

OnErrorロジックを使用してください...

function tbApplyTime2_dateError(sender, args) {

<DateInput ClientEvents-OnError="tbApplyTime2_dateError" />

入ってくるエラータイプの処理:

switch (args.get_reason()) {
            case Telerik.Web.UI.InputErrorReason.ParseError:
                validationMessageLabel.text('Invalid Date entered');
                break;
            case Telerik.Web.UI.InputErrorReason.OutOfRange:
                validationMessageLabel.text('Date must be after sent time');
                break;
}
于 2014-07-01T06:42:07.187 に答える
0

たとえば、ユーザーが日付を入力できないようにし、カレンダーコントロールのみを使用することで、これを回避できる可能性があります。

<telerik:RadDatePicker ID="dt" runat="server" 
                        EnableTyping="false" onkeydown="javascript:return false;" ...... />
于 2015-03-03T13:34:59.703 に答える
0

このコードは機能し、アラートメッセージを表示し、将来の日付が入力されると日付を以前の値にリセットします。

<script type="text/javascript">

    function ValidateDate(sender,args) {
        var datePicker = $find("<%=RadDatePicker1.ClientID%>");
        var todayDate = new Date("<%= System.DateTime.Today %>");
        todayDate.setHours(0, 0, 0, 0);

        if (args.get_newDate() > todayDate) {
            datePicker.set_selectedDate(args.get_oldDate());
            alert("Can not enter future dates.");
        }
    }

</script>

<telerik:RadDatePicker ID="RadDatePicker1"  runat="server" ClientEvents-OnDateSelected="ValidateDate">
    <Calendar ShowRowHeaders="false"></Calendar>
</telerik:RadDatePicker>
于 2015-09-03T13:42:52.553 に答える