0

以下は、asp.netで日付を選択するために使用しているコードです

テキスト ボックスを使用して日付と画像を表示し、カレンダー アイコンを表示し、Ajax カレンダー エクステンダーを使用して日付を形式で選択していますdd-mmm-yyyy

<asp:TextBox ID="txtReqCompDate" runat="server"
    ToolTip="Select Analysis Required Date" CssClass="formtext"
    CausesValidation="True">
</asp:TextBox>
<asp:ImageButton ID="ibReqCompletionDate" runat="server"
    ImageUrl="~/Images/Calendar.png" ImageAlign="AbsBottom" Height="15px" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server"
    ControlToValidate="txtReqCompDate" Display="Dynamic" Text="Required"
    ErrorMessage="Analysis Required Date" ValidationGroup="valProjForm"
    SetFocusOnError="True" Font-Size="Smaller">
</asp:RequiredFieldValidator>
<asp:CompareValidator runat="server" ID="cmp1"
    ErrorMessage="The date must be greater than todays date"
    ControlToValidate="txtReqCompDate" Type="Date" Operator="GreaterThan" />
<cc1:CalendarExtender ID="CalendarExtender1" runat="server"
    PopupButtonID="ibReqCompletionDate"
    TargetControlID="txtReqCompDate" Format="dd-MMM-yyyy" Enabled="True">
</cc1:CalendarExtender>

この行をページの読み込みで使用しても無駄です。

cmp1.ValueToCompare = DateTime.Now.ToShortDateString();

comparevalidator を使用して今日より前の日付を選択した場合に、すぐにメッセージを表示する方法を教えてください。

Web サイトのいくつかのページで同様の機能が必要です。また、同じページで、txtReqCompDate より大きい日付を選択します。

または、.net 2.0 でコーディングしているため、現在のコード機能に影響を与えずに、ajax calenderextender で以前の日付を無効にし、Ajax エクステンダーで現在の日付より前の日付を表示する方法を提案してください。

ここでの私の主な問題は、日付が今日の日付よりも小さい場合、および日付が現在の日付よりも大きい場合でも、検証を示しています。使用するバリデータ、比較、または範囲に関係なく、常にエラーメッセージを表示します

4

2 に答える 2

1

に設定TypeしてからStringCompareValidatorコード ビハインドで日付を取得し、それをstring要件 (つまり"dd-MMM-yy") "大文字と小文字を区別する" にフォーマットします。日付を手動で入力してこのコードをテストしたところ、機能しました。

<asp:CompareValidator runat="server" ID="cmp1"
ErrorMessage="The date must be greater than todays date"
ControlToValidate="txtReqCompDate" Type="String" Operator="GreaterThan" />

コード:

string date = DateTime.Now.ToString("dd-MMM-yy");
cmp1.ValueToCompare = date;
于 2014-09-17T06:24:39.983 に答える
0

比較バリデーターの代わりに、範囲バリデーターを使用します

 **In html**  

 <asp:RangeValidator ID="RangeValidator1" runat="server">  
    </asp:RangeValidator>  

 **C#**
     RangeValidator1.ControlToValidate = "txtReqCompDate";  
     RangeValidator1.Type = ValidationDataType.Date;  
     RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString();  
     RangeValidator1.MaximumValue = DateTime.Now.AddDays(7).ToShortDateString();  
     RangeValidator1.ErrorMessage = "Select date between today to next 7 days!";  

要件に応じて変更できます。

于 2014-09-17T05:57:10.027 に答える