보통 DropDownList Control의 ViewSate값을 false로 설정을 하고, 버튼컨트롤의 클릭이벤트와 같은 포스트백 이벤트나, PageLoad에서 DropDownList의 선택된 값을 가져오려고 한다면, 원하는 결과를 얻을 수가 없다. 그 이유는 페이지의 Load 이벤트에서 OnLoad 이벤트를 호출하게 되는데, OnLoad이벤트가 하는 일중의 하나는 뷰상태가 복원이 되는 것이다. OnLoad에 대한 자세한 설명은(http://msdn.microsoft.com/ko-kr/library/system.web.ui.control.onload.aspx)이곳에 가면은 자세히 알 수가 있다.
  그럼 어디서 값을 가져와야 할것인가가 문제이다. 저는 여기서 이 문제를 해결하기 위해서, Init이벤트에서 선택된 값을 가져와서 변수에 저장을 하였습니다. PreInit의 경우 컨트롤을 초기화 해주기 전이므로 DropDownList컨트롤이 null 상태이다. 그럼 간단히 소스를 보면,
selectedSeries, selectedGrade, selectedType 의 경우는 전역변수로 선언을 했으며, 페이지가 맨 처음 불러 왔을때는, 선택된 값을 불러올 필요가 없으므로 포스트백인경우만 선택된값을 가져오게 하였다.
ddlSeries, ddlGrade, ddlType는 DropDownList의 각각의 ID값이다. UniqueID는 각 DropDownList가 html 코드로 바뀌게 되면서 id값과 name 값이 바뀌게 되는데, ClientID는 id값, UniqueID는 name값이라 생각하면은 될듯하다.
  간단하게 ViewState 을 이용하지 않고 DropDownList의 선택된 값을 가져오는 방법을 알아봤다!! 누구나가 다 아는 내용인가요??
저작자 표시 비영리 변경 금지
Posted by 마야울
이전버튼 1 이전버튼