2011-01-20 3 views
0

내 asp.net 페이지에서 여러 개의 DropDownLists가 있습니다. 리피터도 있습니다.ASP에서 특정 페이지 컨트롤의 값 가져 오기 : 리피터

ItemDataBound 이벤트에서이 DropDownLists의 값을 가져 와서 Repeater에서 데이터를 변경하려고합니다. 이 DropDownLists의 SelectedValue는 비어 있습니다. 그러나 ItemDataBound 뒤에 Page_Load가 실행됩니다. 거기서 나는이 DropDownLists의 가치를 얻을 수 있습니다.

ItemDataBound가 실행될 때 값을 가져 오는 솔루션이 있습니까?

감사합니다.

필립

답변

0

당신은 Page.Load 이벤트에서 데이터 바인딩이 드롭 다운 목록이 필요합니다.

로드 수명주기 중에 상태 나 기타 세부 정보를 얻을 수있는 웹 컨트롤이 많습니다 (이전에 이런 종류의 문제가있었습니다).

참고 : "상태"라고 말하면 ViewState에 대해 말하는 것이 아닙니다.

왜로드 이벤트 이후에 데이터 바인딩을 수행하지 않습니까?

+0

이러한 드롭 다운 목록은 이미 page_load 이벤트에 바인딩되어 있습니다. 내가 'if (! IsPostBack)'를 외부에두면 선택한 값이 포스트 뒤에 다시 설정됩니다. 그리고 Repeater의 ItemBound 이벤트에서 SelectedValue는 여전히 null입니다. – Filip

+0

ItemDataBound는 Repeater의 이벤트이므로 "실행 순서"를 변경할 수 있다고 생각하지 않습니까? – Filip

+0

이 이벤트는 사용자 컨트롤에서 DataBind()를 호출 할 때 호출됩니다. –

0

PreInit 이벤트에서 드롭 다운 목록의 선택한 값을 가져올 수 있습니까? 그렇다면 뷰 상태에 저장하고 repeater의 항목 데이터 바운드 이벤트 중에 뷰 상태에서 검색하십시오.

그래도 해결되지 않으면 선택한 드롭 다운 목록에 선택한 인덱스 변경 이벤트를 추가하십시오. 드롭 다운이 변경되면 리피터의 항목 데이터 바운드 이벤트 중에 검색 할 수있는 뷰 상태 변수를 설정하십시오. 데이터베이스에서 읽을 때와 같이 페이지로드 중에 드롭 다운을 설정할 값이있는 경우 해당 값을 사용하여 적절한 뷰 상태 변수를 직접 설정하십시오.