2011-09-21 4 views
1

동적으로 생성 된 드롭 다운 목록의 Selectedindexchanged 이벤트를 발생시켜야합니다. aspx 페이지에 코드가 없습니다. 모든 코드는 코드 숨김에 있습니다.동적 드롭 다운 목록 컨트롤이 실행되지 않음 Selectedindexchanged 이벤트

DropDownList objdropDown = new DropDownList(); 
objdropDown.EnableViewState = true; 
objdropDown.AutoPostBack = true;         
//objdropDown.AutoPostBack = true; 
//objdropDown.SelectedIndexChanged += new EventHandler(objdropDown_SelectedIndexChanged); 

protected void objdropDown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //My code here 
} 

임의의 항목 drom Dropdownlist를 선택한 후 포스트 백이지만 드롭 다운 컨트롤은 표시되지 않습니다. 여기서 내가 뭘 잘못하고 있니? 코드가 도움이 될 것입니다. 감사!

+0

이벤트 처리기 코드는 실제로 여기에 주석으로 표시되지 않습니다. 컨트롤을 만든 직후에 추가하지 않아야합니까? – tales

답변

0

새로 만든 DropDownList를 페이지의 상위 컨테이너에 추가하고 Visibility를 표시로 설정 했습니까?

2

코드가 코드에서 생성되므로 포스트 백 사이에 코드가 유지되지 않으므로 (매번 Page_Load에서) 코드를 명시 적으로 다시 작성하는 경우는 예외입니다. 그런 다음 선택한 항목을 추적하고 다시 게시 할 때마다 재생성을 선택한 후에 설정해야 할 수 있습니다.

2

pageInit에서 초기에 이벤트를 바인드 할 & 드롭 다운 목록을 만들어야합니다. 그런 다음 다시 게시 프로세스 &에 참여하여 selectedindexchange에 대한 이벤트를 발생시킬 수 있다는 것을 알고 있어야합니다.

PageLoad는 포스트 백 처리가 이미 발생했기 때문에 늦어집니다. 이것 좀 봐 : http://msdn.microsoft.com/en-us/library/ms178472.aspx

0

나는 이것과 같은 문제가 있고 다른 사람들을 위해 나의 결심을 공유하고 싶었다. 있는지 확인하십시오

  • 제어 ID 드롭 다운이 (더 나은 안전을 위해이 설정 한) 모든 포스트 백
  • 이 후 Page_Init 이벤트에서 아래로 동적 드롭을 만들기에 걸쳐 동일합니다.

내 문제는 게시 된 후에 변경되는 동적 컨트롤 ID와 관련이 있습니다. 모든 포스트 백에서 컨트롤 ID가 동일하게 확인되면 문제가 해결됩니다.

관련 문제