2012-02-20 2 views
0

aspx picker에는 두 개의 Ajax 날짜 ​​시간 선택 도구가 있습니다. 두 날짜 사이의 일 수를 계산하고 "Number_Of_Days"에 일 수를 붙여 넣을 수있는 스크립트를 원합니다. 텍스트 상자에서 페이지 새로 고치기없이 자바 스크립트를 사용합니다. 두 번째 날짜의 날짜를 선택하면 첫 번째 날짜 시간 선택기의 날짜가 선택되었는지 여부를 확인해야하는 동시에 일 수를 계산해야합니다.자바 스크립트를 사용하는 두 Ajax Datetime picker 사이의 일 수

+0

jquery ui Date picker를 사용하고 있습니까? – tftd

+0

Asp.Net의 Ajax DateTimePicker가 없습니다. – Gunner

답변

1

여기를 시도해보십시오.

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
FROM: 
<asp:TextBox 
    ID="dateFrom" 
    runat="server" /> 
<asp:CalendarExtender 
    ID="ajxCEFrom" 
    runat="server" 
    TargetControlID="dateFrom" 
    OnClientDateSelectionChanged="calcDays"/> 
TO: 
<asp:TextBox 
ID="dateTo" 
runat="server" /> 
<asp:CalendarExtender 
    ID="ajxCETo" 
    runat="server" 
    TargetControlID="dateTo" 
    OnClientDateSelectionChanged="calcDays"/> 
<div> 
    DIFFERENCE: <span id="result"></span> 
</div> 

이 코드를 자바 스크립트 용으로 사용하십시오.

<script type="text/javascript"> 
function calcDays() { 
    var d1 = document.getElementById("<%=dateFrom.ClientID%>"); 
    var d2 = document.getElementById("<%=dateTo.ClientID%>"); 
    var result = document.getElementById("result"); 

    if(d1.value != "" && d2.value != ""){ 
     var dateFrom = new Date(d1.value); 
     var dateTo = new Date(d2.value); 
     var oneDay = 24 * 60 * 60 * 1000; 
     var diffDays = Math.abs((dateFrom.getTime() - dateTo.getTime())/(oneDay)); 
     result.innerHTML = diffDays + " day/s apart."; 
    } 
} 
</script> 

희망 하시겠습니까?

+0

감사합니다 @ Draw for the reply.Looking 코드에서 작동하는 것처럼 보이지만 작은 오류가 발생합니다 ** 컨트롤에 코드 블록 (예 : <% ... %>)이 포함되어 있기 때문에 컨트롤 컬렉션을 수정할 수 없습니다. **이 부분을 도와주세요. 미리 감사드립니다. – Gunner

+1

컨트롤의 ClientIDMode를 정적으로 설정 했습니까? 그렇다면 ClientID 대신 컨트롤의 ID를 사용할 수 있습니다. – Drew

1

설탕 js와 같은 라이브러리를 사용해 볼 수도 있습니다 (http://sugarjs.com/api/Date/unitsUntil). 그것은 날짜 등을 다루기에 꽤 편리한 기능을 가지고 있습니다.

관련 문제