반응형

asp.net을 하다 부딪히게 되는 가장 큰 장애중 하나로

뒤로가기가 제대로 안되는 문제가 있습니다.

"이거 asp나 jsp로 할 때는 아무 문제도 아니었는데 말야..

닷넷 정말 좋은 거 맞는거야? " 라고들 생각하셨겠죠..

 

물론 javascript로 history.back() 하는 것보다는 복잡하지만

생각보다는 쉽게 구현할 수 있습니다.

원리는 간단합니다.

PostBack의 카운트를 세어서 그만큼 뒤로가기를 시켜주는 것입니다.

 

Page_Load 이벤트에 다음과 같이 코딩해주시면 됩니다.

if (!IsPostBack)
{
    ViewState["History"] = -1;   

}
else
{
    ViewState["History"] = Convert.ToInt32(ViewState["History"]) - 1;
}

btnList.Attributes["onclick"] = "history.go(" + ViewState["History"].ToString() + ");return false";

 

 

처음 그 페이지에 들어왔을 때에는 history.go(-1)을 해주면

뒤로 가니까 초기값을 -1로 주었습니다.

그리고 PostBack이 일어날 때마다 그 값을 하나씩 빼줍니다.

그 다음엔 돌아가야할 카운트를 되돌아가기 버튼에 할당해줍니다.

 

되돌아가기 이벤트를 서버 이벤트로 처리할 수도 있었지만

필요없는 네트웍 트래픽만 일으키게 되기 때문에

클라이언트쪽 이벤트로 처리해 보았습니다.

반응형

+ Recent posts