2012-05-08 2 views
0

가정하자 :Response.Redirect가 ViewState를 잃어 버릴까요? 페이지 I이 컨트롤을 생성 (웹폼)의를 Page_Load에()

HtmlGenericControl optionBox = new HtmlGenericControl("div"); 
optionBox.Attributes["class"] = "class_1"; 

보다는 사용은하는 LinkButton을 사용하여 페이지를 불러올 것입니다. 내가 렌더링 결과를 보면, 내가 사업부의 클래스가 변경된 것을 확인할 수 있습니다,

protected void cmdCerca_Click(object sender, EventArgs e) 
{ 
    ... 
    div.Attributes.Add("class", "class_2"); 
    ... 
} 

음 :이 버튼에서 호출 방법에, 나는 내 이전 DIV의 클래스를 변경합니다.

이 페이지를 다음 호출 할 때이 컨텍스트에서 cmdCerca_2_Click을 호출하면 해당 개체가 class_2이 아닌가 아닌보기에서 복구된다는 것을 의미합니다.

그러나 cmdCerca_Click 끝 부분에서 나는 Response.Redirect()으로 같은 페이지를 호출합니다. 보기가 사라지는 것 같습니다.

왜? 어떻게 해결할 수 있습니까?

희망 사항은 분명합니다.

+0

이것은 의도 한 동작입니다. – leppie

+1

리디렉션을 피하려고합니다. –

+0

검색 양식에 GET 쿼리 문자열을 구성해야하므로 리디렉션이 필요합니다. 그래서 앞으로 같은 쿼리를 붙여 넣으면 같은 결과가 나옵니다 ...! 의도 된 행동 ... 왜? 이유가 있니? – markzzz

답변

2

컨트롤을 컨트롤 트리에 가져 오려면 컨트롤을로드하지 말고 페이지 init 이벤트에 추가해야합니다.

모든 포스트 백에서이 컨트롤을 다시 만들어야합니까? 이 경우 매번 기본 클래스가 설정됩니다.

+0

Page_Load가 아닌 이유 Page_Init을 사용해야하는 이유는 무엇입니까? 내가 누락 된 것이 있습니까? – markzzz

+0

추천 도서 : http://www.4guysfromrolla.com/articles/092904-1.aspx – Paddy

관련 문제