ASP.NET 유효성 검사기로 날짜 유효성 검사
ASP.NET을 사용하여 RangeValidator
텍스트 상자의 날짜를 확인 하려고 합니다. 텍스트 상자에 입력 한 날짜 형식은입니다 dd MMMM yyyy
.
범위 유효성 검사기를 사용하여 유효한 날짜를 확인하려면 어떻게해야합니까? 최소값 또는 최대 값으로 1000 년 1 월 1 일을 입력하면 값을 날짜 유형으로 변환 할 수 없다는 오류가 표시되지만 다른 형식을 사용하면 입력 한 텍스트가 유효하지 않은 것으로 간주됩니다.
아래는 내 코드입니다.
<asp:TextBox
runat="server"
ID="txtDatecompleted"
/>
<cc2:CalendarExtender
ID="datecompletedExtender"
runat="server"
TargetControlID="txtDatecompleted"
Format="dd MMMM yyyy"
/>
<asp:RangeValidator
runat="server"
ID="RangeValidator1"
Type="Date"
ControlToValidate="txtDatecompleted"
MaximumValue="9999/12/28"
MinimumValue="1000/12/28"
ErrorMessage="enter valid date"
Display="None"
/>
<cc2:ValidatorCalloutExtender
ID="RangeValidator1_ValidatorCalloutExtender"
runat="server"
Enabled="True"
TargetControlID="RangeValidator1">
</cc2:ValidatorCalloutExtender>
최선의 선택은
웹 양식에 비교 유효성 검사기를 추가합니다. controlToValidate를 설정합니다. Type 속성을 Date로 설정합니다. 연산자 속성을 DataTypeCheck로 설정합니다. 예 :
<asp:CompareValidator
id="dateValidator" runat="server"
Type="Date"
Operator="DataTypeCheck"
ControlToValidate="txtDatecompleted"
ErrorMessage="Please enter a valid date.">
</asp:CompareValidator>
CustomValidator는 여기에서도 작동합니다.
<asp:CustomValidator runat="server"
ID="valDateRange"
ControlToValidate="txtDatecompleted"
onservervalidate="valDateRange_ServerValidate"
ErrorMessage="enter valid date" />
코드 숨김 :
protected void valDateRange_ServerValidate(object source, ServerValidateEventArgs args)
{
DateTime minDate = DateTime.Parse("1000/12/28");
DateTime maxDate = DateTime.Parse("9999/12/28");
DateTime dt;
args.IsValid = (DateTime.TryParse(args.Value, out dt)
&& dt <= maxDate
&& dt >= minDate);
}
다음이 가장 쉬운 방법이라고 생각합니다.
<asp:TextBox ID="DateControl" runat="server" Visible="False"></asp:TextBox>
<asp:RangeValidator ID ="rvDate" runat ="server" ControlToValidate="DateControl" ErrorMessage="Invalid Date" Type="Date" MinimumValue="01/01/1900" MaximumValue="01/01/2100" Display="Dynamic"></asp:RangeValidator>
I believe that the dates have to be specified in the current culture of the application. You might want to experiment with setting CultureInvariantValues to true and see if that solves your problem. Otherwise you may need to change the DateTimeFormat for the current culture (or the culture itself) to get what you want.
참고URL : https://stackoverflow.com/questions/939802/date-validation-with-asp-net-validator
'Development Tip' 카테고리의 다른 글
LINQ to 엔터티에서 LEFT JOIN? (0) | 2020.11.16 |
---|---|
Visual Studio Code에서 자동 완성 방지 (0) | 2020.11.16 |
데이터베이스에 파일을 저장하고 바이트 배열로 변환 하시겠습니까? (0) | 2020.11.16 |
Xcode 4에서 .xcconfig 파일을 어떻게 사용할 수 있습니까? (0) | 2020.11.16 |
Javascript에서 배열에 중복 값이 있는지 어떻게 확인합니까? (0) | 2020.11.16 |