2010-08-06 2 views
0

이므로 대부분의 경우 페이지 명령/컨트롤 init/load 이벤트 이후에 itemcommand 이벤트가 발생합니다. 페이지가 수정 된 세션을 사용하여 itemcommand에 반응 할 수 있도록 itemcomment (예 : 항목 추가)에서 수정 된 세션 변수 데이터를 유지하는 가장 좋은 방법은 무엇입니까?listview에서 세션 변수를 유지하는 가장 좋은 방법은 itemcommand ASP.NET

+0

내가 볼 때 (그리고 작동하는) 유일한 해결책은 페이지의 사전 렌더링 기능을 처리하는 것입니다. 작동하는 것처럼 보이지만, 다른 control 이벤트처럼 itemcommand가 작동하지 않습니다. – Skowronek

+1

당신이하려는 일과 당신을 위해 일하지 않는 것에 대한 예를 제시 할 수 있습니까? 일반적으로 itemcommand 핸들러에 맞게 세션을 수정할 수 있어야하지만 대부분의 페이지 이벤트가 이미 실행되었으므로 다음 요청이있을 때까지 이러한 변경 사항을 반영하지 않습니다. 당신이 원하는 것). –

+0

문제는 listview에서 버튼을 클릭 한 후 페이지에서 업데이트 할 카운터가 필요하다는 것입니다. 페이지 프리렌더 이벤트에 업데이트 로직을 던지면서 수행 할 수있었습니다. – Skowronek

답변

0

당신은 이전 페이지의 라이프 사이클에서 포스트 백을 잡을 수 :

// id of the control 
    string id = Request.Form["__EVENTTARGET"]; 

    if (!string.IsNullOrEmpty(id) && id.Contains("myControlId")) 
    { 
     string argument = Request.Form["__EVENTARGUMENT"]; 
     ... 
    } 

하지만 매우 우아하고도 안전도 있습니다. 나는 Skowronek의 제안을 따를 것이다 : PreRender에 더 많은 논리를 넣는 것이다.