2009-02-06 10 views
1

페이지에 사용자 컨트롤의 인스턴스가 여러 개 있습니다. 또한 서로 중첩되어 있습니다. 이러한 컨트롤은 동적으로 만들어지기 때문에 상태를 유지하는 데 문제가 있습니다. 나는 영구적 인 매체 (아마도 Session)에 상태를 수동으로 저장하기로 결정했다.버튼 클릭 이벤트

호스트 페이지의 버튼에 대한 클릭 이벤트에서 포스트 백이 발생하기 전에 컨트롤의 상태를 저장하는 기능을 작성하고 싶습니다 (다시 포스트 백이되면 컨트롤이 다시 생성되어 상태가 손실됩니다).

버튼 이벤트 핸들러에이 로직을 넣으면, 포스트 백 이후에이 로직이 실행되므로 더 이상 정보가 없습니다.

어떤 방법으로 오버라이드해야합니까?

답변

0

질문에 답할 필요가 없지만 버튼 레이아웃이 재설정되는 이유가 궁금합니다. 자바 스크립트를 통해 뭔가하고 있습니까?

어떻게 단추를 만드십니까? page_load에? 그 포스트 백이 언제 체크하고 있습니까?

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostBack) 
    { 
     // load all buttons 
     LoadButtons(); 
    } 
} 
0

포스트 백에서 컨트롤을 다시 만들고 그 상태가 손실되는 것처럼 들립니다. 이를 막으려면 Page.IsPostBack을 사용해야합니다. 또한 페이지가 Viewstate를 허용하는지 확인하십시오.

1

로드 대신 페이지 초기화에서 버튼을 만드십시오.

0

실제로 LoadViewState 메서드 재정의에서 동적 컨트롤을로드하려고합니다. 스스로 상태를 유지하려고하지 마십시오. 그것은 시간 낭비입니다. 코드를 올바른 위치에두기 만하면됩니다.

My previous comments on this

관련 문제