2010-12-23 9 views
0

패널에 포함 된 버튼을 클릭 이벤트와 함께 사용하면 문제가 없습니다. 그것은의 이동과 잘 보이는 모든 얻을클릭 버튼이 클릭 이벤트를 멈추게합니다.

newPanel.Controls.Add(buttonPanel) 

을하십시오 사용자가 다른 버튼을 누르면 그러나 때, 나는 (이 실제로 modalpopupextender와 패널입니다) 다른 패널에이 버튼을 이동해야하므로이 코드는 이렇게 . 그러나 이제 버튼을 클릭하면 관련된 이벤트가 발생하지 않습니다. page_init에서이 코드를 사용하여 이벤트를 다시 추가하려고 시도했습니다.

((Button)this.FindControl("serverModalSave")).Command += new CommandEventHandler(modalSave_Click); 

행운이 없습니다. 이 버튼을 움직이면 클릭 이벤트가 발생하고 어떻게 움직이면 작동을 멈 춥니 까?

편집 :

이 버튼은 실행시에 사용자가 지정한 패널에 추가 할 필요가 있으므로 버튼을 사전에 갈 것이다 위치를 확인 할 수있는 방법이 없습니다.

이 버튼을 이동하는 대신 새 버튼을 만들 수 있지만이 버튼이 page_init에 만들어지지 않았기 때문에 이벤트를 발생시키는 데 문제가 있습니다.

답변

2

버튼을 움직이는 대신 다른 패널의 다른 버튼을 숨김으로 설정하십시오.

이동하려는 버튼을 숨기고 필요한 경우 숨겨진 버튼을 표시하십시오.

컨트롤을 이동하면 명명 계층 구조가 변경되어 이제 단추를 찾을 수없고 클릭 이벤트가 발생하지 않습니다.

이것은 page life cycle의 작동 방식 때문입니다. Here은보기 상태의 작동 방식에 대한 좋은 (다소 날짜가 기입 된) 기사입니다.이 사실을 이해하면 무엇이 잘못되었는지 이해하게 될 것입니다.

+0

를 참조 각 포스트 백에 모든 컨트롤을 다시 만들어야합니다 추가해야 할 것이므로 이동해야합니다. 다른 옵션은 동적으로 패널에 새 버튼을 추가하는 것입니다. 그런 다음 이벤트를 발생시키는 데 문제가 있습니다. –

+0

@Sam - 버튼을 만드는 데 필요한 모든 정보가있는 경우 다른 패널에서 다시 만들 수는 없습니까? – Oded

+0

다른 옵션이지만 page_init 대신 버튼 클릭으로 버튼을 만들므로이 새로운 버튼에 대해 이벤트 발생 문제도 발생했습니다. –

0

새 패널에서 단추를 만드는 경우이 단추를 클릭하면 다시 게시 할 수 있습니까?

당신은 버튼 GET의 런타임에 달라질 추가가되는 패널을 미리 알 수있는 방법이 없다는 것을 내가 가지고있는 문제, 패널의 그 here

관련 문제