2013-12-12 3 views
2

objectdatasource를 사용하여 asp.net 웹 양식의 마스터/세부 사항 gridview 및 detailsview에서 작업하고 있습니다. 상세보기는 Gridview에서 선택한 행에 대한 추가 정보를 표시합니다. 표를 정렬 할 때 정렬이 수행되기 전에 현재 선택된 행을 정렬이 완료된 후에 세부 사항보기에 남기고 싶습니다. 대신 gridview는 정렬 할 때마다 새로운 첫 번째 행을 자동으로 선택합니다.Gridview 정렬 후 첫 번째 행을 자동으로 선택합니다.

이 문제의 부분적인 해결책을 발견했습니다. WhateverGridview.SelectedIndex = -1 onsort를 설정하면 값이 null이됩니다. 이렇게하면 정렬 후 모든 행의 선택이 취소됩니다. 그러면 세부 정보보기가 비어있게됩니다. 그러나, 내가 뭘 원하는 행을 무효화하지 유지하고 싶습니다.

그래서 누구나 선택한 값을 유지하거나 정렬 이벤트 발생 후 세부 정보보기가 표시되지 않도록하는 좋은 방법이 있습니다.

+0

현재 값을 저장하고 정렬 후'선택됨 '으로 설정합니까? – KSdev

+0

정렬이 시작될 때 전체 선택된 인덱스가 반대로되기 때문에 작동하지 않습니다. – TimidObserver

+0

gridview에서 호출기를 사용하고 있습니까? – Jumpei

답변

5

여기서 GridView.EnablePersistedSelection 속성을 사용해야합니다. 이 속성을 true으로 설정하십시오.

true으로 설정하면 GridView은 데이터 키 값을 기반으로 행을 선택합니다.

기본적으로 GridView는 인덱스를 기준으로 행을 선택합니다. 이것은 정렬 할 때 gridview가 인덱스를 기반으로 행을 선택하고 실제로 선택된 행을 잃는 이유입니다.

+1

감사합니다. 나는이 솔루션이 훨씬 더 복잡해질 것으로 기대했다. 이 녀석을 저를 위해 투표해야합니다. – TimidObserver

관련 문제