카테고리

분류 전체보기 (509)
문학 (128)
찬양 콘티(Continuity) (80)
Business as heritage (6)
IT . Web (148)
Photo (127)
etc. (20)
Total397,629
Today8
Yesterday51






블로그 이미지

jQuery가 웹개발에 널리 쓰이고 있고, 저는 개인적으로 UI도 좋아합니다. - http://jqueryui.com/

기본적으로 ASP.NET TextBox 컨트롤에 캘린더를 애드온 할 때도, 페이지가 브라우저에서 로드된 다음 애드온하는 방식을 쓰게 됩니다.

문제는 텍스트박스에 특정한 값이 있는 상태에서 jQuery UI 캘린더를 애드온하면, 날짜가 초기화된다는 점입니다. 처음 페이지가 열리는 !IsPostBack 상황에서는 문제될 것이 없지만, 날짜가 입력된 상황에서 포스트백을 하게 되면 웹폼 시스템에서는 페이지가 또 로드되게 되고 캘린더가 다시 애드온 되면서 기존 값이 초기화되어 버립니다.

그래서 조금 조잡하지만.. 애드온 하기 전에 값을 빼두고 애드온 후에 재적용하는 방법을 쓰고 있습니다.

좀 더 깔끔한 방법이 있으면 알려주시면 감사하겠습니다. (_ _)

<script type="text/javascript">
    $(function() {
        idTbDateFrom = "#<%=tbDateFrom.ClientID%>";
        idTbDateTo = "#<%=tbDateTo.ClientID%>";
        orgDateFrom = $(idTbDateFrom).val();
        orgDateTo = $(idTbDateTo).val();

        setDatePicker(idTbDateFrom);
        setDatePicker(idTbDateTo);

        $(idTbDateFrom).val(orgDateFrom);
        $(idTbDateTo).val(orgDateTo);
    });
</script>


setDatePicker는 코드 재사용을 위해 만든 사용자 함수입니다.  # datepicker()는 jQuery UI 함수.

function setDatePicker(ctrlID) {
    $(ctrlID).datepicker();
    $(ctrlID).datepicker('option', { changeMonth: true,
        changeYear: true, dateFormat: 'yy-mm-dd', yearRange: '-5:+1'
    });
}


자세한 옵션은 jQuery API를 참조하시기 바랍니다.

Posted by One of Remnants

댓글을 달아 주세요

달력

« » 2018.12
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

최근에 받은 트랙백

글 보관함