사용자가 Calendar Extender 컨트롤에서 날짜를 선택할 수있는 ASP.Net 양식이 있는데, 날짜 필드 (FromDate & ToDate)가 2 개 있습니다.Javascript & ASP.Net을 사용하는 유효 일자
나는 다음과 같은 사용하여 자바 스크립트를 확인하려면 :
- FROMDATE는
- FROMDATE & TODATE 오늘 날짜 이상이어야한다 TODATE 항상보다 작아야합니다. 두 조건에 해당하는 경우
, 나는 주말을 제외한 선택한 기간 내에 일의 총 수를 계산하고 (이 방법은 잘 작동) 사용자에게 표시됩니다 코드 숨김에서 메소드를 호출하는 다음 싶습니다 .
아래 코드에서 앞서 언급 한 두 조건이 충족 될 때 __doPostBack을 사용하여 codebehind 메서드를 실행했습니다. 그것은 codebehind 메서드를 발생시키지 만 자바 스크립트 변수는 틀리게됩니다 (compareDate 변수는 각 함수 호출 & postback 함수 호출마다 항상 증가하므로) 모든 결과가 올바르지 않게됩니다. 다음은
*
내가 자바 스크립트를 사용하여 날짜를 확인하는 데 사용하는 현재의 방법이다<script type="text/javascript">
var fromDate = new Date();
var toDate = new Date();
function checkDate(sender, args) {
if (sender.get_id() == 'CalendarExtenderFrom') {
fromDate = sender._selectedDate;
}
else if (sender.get_id() == 'CalendarExtenderTo') {
toDate = sender._selectedDate;
}
// Check if selected date is less than today's date
var todayDate = new Date();
var year = todayDate.getFullYear();
var month = todayDate.getMonth();
var day = todayDate.getDate();
var dateOnly = new Date(year, month, day);
if (sender._selectedDate < dateOnly) {
alert("You cannot select a day earlier than today!");
sender._textbox.set_Value("");
return;
}
// Check if FromDate > ToDate
if (document.getElementById('TextBoxDateOfLeave').value != "" && document.getElementById('TextBoxDateOfReturn').value != "") {
var compareDate = new Date(fromDate.getFullYear(), fromDate.getMonth(), (fromDate.getDate()) + 1, 00, 00, 00, 00);
if (toDate < compareDate) {
alert("(Return Date) should be greater than (Travel Date)");
sender._textbox.set_Value("");
return;
}
}
// If both conditions are met
window.__doPostBack('__Page', '');
}
</script>
ASP.Net이 제어 *, 그것은 모두 텍스트 상자의 일정 연장 컨트롤에서 OnClientDateSelectionChanged 이벤트에서 발사 된 것 :
<asp:TextBox ID="TextBoxDateOfLeave" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderFrom" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfLeave" OnClientDateSelectionChanged="checkDate" />
<asp:TextBox ID="TextBoxDateOfReturn" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderTo" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfReturn" OnClientDateSelectionChanged="checkDate" />
이걸 chieve.
고맙습니다.
많은 도움을 주셔서 감사합니다. :) –