현재 데이터베이스를 다시 쿼리하여 그리드를 채우지 만 상태가 복원되지만 페이지가 너무 느리게로드됩니다. 대신 세션 변수에 viewstate를 저장하고 사용자가 페이지를 다시 방문 할 때 복원하고 싶습니다. 어떻게 이뤄지나요? SessionPageStatePersister을 사용해야합니까? 이는 다시 게시 상황이 아니거나 교차 페이지 다시 게시가 아닙니다.세션 페이지 viewstate를 비 포스트 백, 크로스 페이지가 아닌 포스트 백 시나리오에서 저장하고 복원 할 수있는 방법은 무엇입니까?
배경 : 저는 VS 2010 ASP.Net 웹 응용 프로그램 템플릿을 마스터 페이지와 여러 개의 탭으로 구성된 콘텐츠 페이지와 함께 사용했습니다. 새 탭으로 이동하면 상태가 손실됩니다. 내 고객 탭을 사용하면 AspxGridView에서 한 고객을 필터링하고 선택할 수 있습니다. 선택한 고객 ID는 세션 변수에 저장되며 관련 고객 데이터를 연락처, 청구서, 작업 등 다른 탭에 표시하는 데 사용됩니다. SaveClientLayout을 사용하여 고객 그리드 필터, 정렬 및 레이아웃을 저장하고 복원 할 수 있습니다. 그러나 데이터베이스를 다시 쿼리하지 않고 그리드 데이터를 복원하는 방법을 모르겠습니다.
나는 this tutorial을 발견했으며 SessionPageStatePersister 섹션에 코드를 구현했습니다. 코드를 복사하고 SessionPageStateAdapter 및 .browser 파일을 만들었습니다. 이 세션 viewstate 데이터에 액세스하는 방법에 관해서는 혼란 스럽다. 사용자가 여러 다른 페이지를 방문한 후에 viewstate를 저장하고 복원하는 방법에 대한 도움이 필요합니까?
로드가 얼마나 느려 집니까? 고객 그리드 쿼리의 속도를 높이거나 페이지를 올리는 더 나은 솔루션이 있습니까? 얼마나 많은 레코드를 반환합니까? – Paddy
아쉽게도 데이터는 Connx ODBC 드라이버를 통해 액세스하는 Vax 플랫 파일에 있습니다. 최적화를 살펴 보 겠지만 Vax와 Connx는 익숙하지 않은 영역입니다. 필요한 경우 인덱스를 추가 할 수있는 SQL Server만큼 간단하지 않을 수 있습니다. – DeveloperDan