나는 간단한 목표를 가지고있다. 깨끗한 프로젝트를 만들어 문제를 시뮬레이션 할 수 있습니다.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());
, 올바른 동적으로 현재 설정된 날짜를 표시합니다. 그러나 디스플레이는 단순히 새로 고침을하지 않습니다.
올바른 동작입니까? 내가 놓친 게 있니?
어떻게하면 정확한 날짜로 간주 할 수 있습니까?