2008-10-15 2 views
2

ASP.net에 목록 상자가 있습니다. 동적으로 페이지의 다른 목록 상자에서 목록 상자 값을 채우는 중입니다. 다시 게시하는 동안 출력 목록 상자의 값은 유지되지 않습니다. (다른 페이지로 이동하여이 페이지로 돌아 오는 동안).목록 상자 값이 다시 게시를 통해 지속됩니다.

좋은 대답을 제안하십시오. EnableViewstate = "true"가 작동하지 않습니다.

+0

ListBox를 채우고있는 단계는 무엇입니까? ViewState가 어떻게 든 비활성화되지 않으면 너무 늦게 페이지에 지속될 수 있습니다. – leppie

+0

값이 지속되지 않습니다. 나는 자바 스크립트를 통해 인구입니다. – balaweblog

답변

3

당신이하지 포스트 백에, 페이지가 처음로드 될 때에만 호출 할 필요가 부하에

if(!IsPostBack) {} 

초기화 코드에 있어야를 Page_Load에서 아무것도하고있다.

다른 페이지로 이동 한 다음이 페이지로 돌아가려면 세션에서 직접 정보를 보존 한 다음 페이지로 돌아올 때 복원해야한다고 생각합니다.

0

Page의 초기화 이벤트 (Page_Init)에서 컨트롤의 내용을 초기화하십시오. 그렇게하면 사용자가 제공하는 모든 값이 기본값에 의해 덮어 쓰이지 않습니다.

1

viewstate는 동일한 페이지에서 다시 게시를하는 동안에 만 보존됩니다. 루 프랑코으로 는

if(!IsPostBack) {} 

당신은 데이터를 입력하는 초기 pagerequest에 이것을 사용 썼다. 값을 저장하는 세션을 사용하는 페이지에서 데이터를 보존하려는 경우 최상의 방법입니다.

내가 미리 회상 한 SaveViewState 이벤트 전에 목록 상자의 데이터를 채우는 것이 좋습니다.

0

EnableViewState는 viewstate에 저장되어있는 값이기 때문에 페이지를 처음 렌더링했을 때의 값으로 출력 목록 상자를 다시 채 웁니다. 브라우저는 포스트 백에서 선택된 값만 전송하므로 서버가 클라이언트에 추가 한 다른 값을 알 수있는 방법이 없습니다.

페이지에 숨겨진 입력을 추가하고 목록 상자를 업데이트 할 때 동적 값을 채워이 문제를 해결할 수 있습니다. 그런 다음 페이지는 다시 게시하는 동안 해당 값을 확인하고 목록을 제대로 다시 채울 수 있습니다.

0

클라이언트 측의 목록 상자에 대한 변경 사항은 다시 게시 중에 유지되지 않으므로 숨겨진 필드에 정보를 기록한 다음 page_load 이벤트 중에 컨트롤을 구성하여 나머지 포스트 백 동안 변경 사항을 적용해야합니다.