2011-08-08 6 views
0

ASP.NET에서 gridview가 있습니다. 내가 어떤 페이지로 간다면 (분명히 첫 페이지가 아님). 레코드를 편집하십시오 (사용자 정의 모양이있는 사용자 정의 바운드 버튼 사용). 레코드를 편집 할 때 그리드 뷰에 표시되지 않으므로 페이지를 새로 고칩니다.페이징 된 ASP.NET gridview의 현재 인덱스 기억하기

그러나 페이지를 새로 고치는 것은 (C#을 통해 완료 됨) 그리드의 현재 색인이 손실되었음을 의미합니다. 현재 색인을 유지하려면 어떻게해야합니까?

ASP.NET 2.0 웹 양식 또는 3.5 (확실하지 않음, 확인 필요)를 사용 중입니다. 그러나 확실히 MVC가 아닙니다.

감사

답변

0

편집중인 레코드가 고유 한 식별자를 가지고 있다고 가정 할 때, 나는 그것을 veiwstate 또는 session으로 유지합니다. 여기에는 레코드가 삽입되거나 삭제되는 시나리오가 포함됩니다. This question and answers은 색인 대신 항목 ID를 기준으로 활성 행을 설정하는 데 도움을 줄 수 있습니다.

나는 그것이 정확히 당신이 찾고있는 것이 아니지만 유용한 접근 방법 일 수 있습니다.

+0

실제로 시도해 보았습니다. 나는 페이지가 새로 고침 (같은 페이지에 대한 response.redirect) 그것을 망칠 것 같아요. 나는 이것을 어떻게해서든지 고쳤다. – dotnetdev

+0

편집 후 데이터 원본을 다시 쿼리하고 다시 바인딩하여 최신 데이터가 표시되는지 확인합니다. 이는 response.redirect를 사용하여 새로 고치는 것과 비슷합니다. response.redirect를 사용하는 경우 리디렉션의 쿼리 문자열에 인덱스 또는 ID를 추가 할 수 있습니다. –

1

한 가지 방법은 편집 버튼 이벤트 페이지 인덱스 값을 유지하는 것입니다. 뷰 상태 또는 세션을 사용할 수 있습니다. 그런 다음 업데이트를 클릭하면 데이터를 다시 바인딩하고 저장 한 값을 기반으로 인덱스를 설정할 수 있습니다.