2011-12-02 1 views
0

페이지가 부분적으로 게시 될 때 몇 가지 문제가 있습니다. 일부 라디오 버튼을 기반으로 tr 디스플레이 = ""및 디스플레이 = "없음"자바 스크립트에 의해 기반으로합니다. 그 후 gridview 행을 추가하고 있습니다. gridview는 새로운 행을 추가하기 위해 empltyTemplate과 footer를 포함합니다. 그러나 격자보기에서 행을 추가하면 사용자 정의 컨트롤이 다시 게시되므로 모든 tr은 페이지가로드 될 때 기본적으로 displa = "none"이됩니다. 업데이트 패널에서 gridview를 유지하려고했지만 작동하지 않습니다. 내 컨트롤의 계층 구조는 다음과 같습니다.사용자 정의 컨트롤을 다시 게시 할 때 라디오 버튼이 선택 항목을 유지하지 않습니다.

레벨 1 마스터 페이지 ---> 레벨 2 마스터 페이지 ---> 레벨 3-.aspx 페이지 ---> 레벨 4 사용자 컨트롤 ---> 레벨 5 - 여러 accordians- -> 레벨 6 : 각 accordian에서 1 사용자 컨트롤 ..

코드는 지나치게 길다. 나는 사용자 패널 (Level 6) 내부에서 업데이트 패널을 유지하려고 시도했지만 작동하지 않았다. 일부 검색 후 그 안쪽 accrdian 경우 업데이트 창이 작동하지 않는 것으로 나타났습니다. 그래서 모든 Accrdian 내부의 업데이트 패널을 유지하려했으나이 경우 .aspx 페이지는 다시 게시되지 않지만 accrodian에 배치 된 모든 사용자 컨트롤이 다시 게시되므로 선택 항목이 기본로드로 설정됩니다.

마지막 수준의 사용자 정의 컨트롤이 게시 될 때 모든 선택 항목을 유지하려고합니다.

상황은 이해하기가 상당히 복잡하지만 이것이 바로 ... 내 문제를 해결하는 방법은 무엇입니까?

답변

3

JavaScript에서 DOM에 대한 변경 사항은 cross-PostBack에서 유지되지 않습니다. 서버는 사용자가 수행 한 작업을 전혀 모르기 때문에이를 추적 할 방법이 없습니다.

이 문제를 해결하려면 서버 측에서 콜백 또는 Ajax 호출로 JS 코드 업데이트 상태를 갖거나 태그의 상태를 반영하는 양식의 숨겨진 입력 필드를 업데이트해야합니다. 서버를 보게하고 이에 따라 렌더링 된 HTML을 업데이트하십시오.