2014-12-19 5 views
0

나는 간단한 목표를 가지고있다. 깨끗한 프로젝트를 만들어 문제를 시뮬레이션 할 수 있습니다.asp.net 달력 익스텐더에서 정확한 날짜 설정

문제는 동적으로 텍스트 상자에 날짜를 설정할 때 올바르게 asp.net calendarExtender 표시 날짜를 설정할 수 없다는 것입니다. 여기

는 코드입니다

HTML :

<asp:Button 
    ID="Button1" 
    runat="server" 
    Text="2013" 
    OnClientClick="SetDate(0);return false;" /> 

<asp:Button 
    ID="Button2" 
    runat="server" 
    Text="2015" 
    OnClientClick="SetDate(1);return false;" /> 

<br /> 

<asp:TextBox 
    runat="server" 
    ID="tbDate"></asp:TextBox> 

<asp:CalendarExtender 
    ID="clDate" 
    runat="server" 
    Enabled="True" 
    BehaviorID="calendarExtender" 
    TargetControlID="tbDate"> 
</asp:CalendarExtender> 

자바 스크립트 :

var Data = (function() { 
    var _items = [{ ID: 1, Date: "19/12/2013" }, 
        { ID: 2, Date: "19/12/2015" }]; 

    function _GetAll() {           
     return _items; 
    } 

    function _GetByID(itemID) { 
     var o = $.grep(_items, function (el, i) { 
      return el.ID === itemID; 
     }); 

     return o[0]; 
    } 

    return { 
     GetByID: _GetByID, 
     GetAll: _GetAll 
    } 
})(); 

function SetDate(itemID) { 

    var item = Data.GetByID(itemID); 

    var stringDate = item.Date; 
    var objectDate = Date.parseLocale(item.Date, "dd/MM/yyyy"); 

    $("#tbDate").val(stringDate); 

    $find("calendarExtender").set_selectedDate(objectDate); 

} 

가수록이 간단해야하지만, 제어 솔기가 자신의 행동을 가지고. 내가 결론을 내리면 표시 날짜 (열 때)는 항상 마지막으로 선택한 날짜를 가정합니다. 당신이 뭘 하든지.

일부 scenarious :

  • 시나리오 1

    1로드 페이지

    일정 연장을 열고, 텍스트 상자에 2 클릭합니다.

    3 캘린더 익스텐더는 현재 날짜를 가정합니다.

    2013 버튼을 4 번 클릭하면 텍스트 상자가 2013 년으로 업데이트됩니다.

    텍스트 박스에 5 cick, 일정 연장을 개방 ..... 여전히 갖는다 2,014 (현재 날짜)

  • 시나리오 2

    1 부하 페이지 2,013 버튼이 클릭 텍스트 상자가 2013 날짜로 업데이트됩니다.

    텍스트 상자를 3 번 ​​클릭하고 캘린더 익스텐더를 엽니 다.

    4 캘린더 익스텐더는 2013 년 (올바른 날짜)으로 가정합니다.

    2015 버튼을 5 번 클릭하면 텍스트 상자가 2015 날짜로 업데이트됩니다.

    3 클릭 일정 연장을 열어, 텍스트 박스에 ..... 여전히 보유 2013 (제 1 일)

  • 3

    (2와 동일하지만, 2,015 버튼 클릭으로 시작) SCENARIO

  • 시나리오 4

    페이지

    -2- 2,013 클릭 버튼, 텍스트 박스 2013 날짜로 갱신 한 하중 (N DO OT 클릭 텍스트 상자).

    2015 버튼을 3 번 클릭하면 텍스트 상자가 2015 날짜로 업데이트됩니다.

    텍스트를 4 번 클릭하고 캘린더 익스텐더를 열면 .....2015 년 (마지막 날짜)

참고 가정 : 나는

alert($find("calendarExtender").get_selectedDate()); 

, 올바른 동적으로 현재 설정된 날짜를 표시합니다. 그러나 디스플레이는 단순히 새로 고침을하지 않습니다.

올바른 동작입니까? 내가 놓친 게 있니?

어떻게하면 정확한 날짜로 간주 할 수 있습니까?

답변

0

좋아, 나는 조금 더 많은 테스트를했는데 시각화는 포스트 백이 발생할 때만 업데이트된다는 것을 알았습니다.

나는 게시판을 피하려고 했으므로 jquery datepicker로 가십시오.