2013-01-06 2 views
1

내가 무엇을 가지고 :액세스의 GridView의 ViewState를

내가 페이징없이의 GridView 있습니다. 포함 페이지의 Page_Load 핸들러에서 테이블 스토리지의 사용자 특정 값을 읽고이를 ObjectDataSource의 SelectMethod가 가져올 수 있도록 콜렉션에 저장합니다.

내가 원하는 것은 : 나는의 GridView 다시 저장을 조회하지 않고 이전에 추가로 새로운 데이터를 표시 할에

사용자가 같은 페이지에서 새로운 데이터를 업로드의 GridView입니다.

유용한 물건 :를 Page_Load 처리기 내에서

IsPostBack을 데이터가 viewstate가 아직 때 쿼리를 방지하는 데 도움이됩니다. 사용자가 업로드 버튼을 클릭 한 후에도 그는 추측 한 GridView의 ViewState 덕분에 이전 데이터를 볼 수 있습니다.

내 시도 : 나는의 GridView에서 파생하고있는 StateBag를 반환의 ViewState 속성에 액세스하기 위해 내 자신의 사용자 정의 컨트롤을 만들려고하지만

그것에 표시되는 사용자 데이터를 찾을 수 없습니다 . 그것은 DataSourceID, _! ItemCount 등과 같은 것들만 보여줍니다.

내 질문 :

뒤에 코드에서 열 값 또는 DataKeyName 값과 같은 데이터를 검색하기 위해의 GridView에서 ViewState에 액세스하는 방법.

추가 정보 :

질문 does gridview save data in viewstate?에 대한 답변의 GridView가의 ViewState에 데이터를 저장한다고.

답변

1

GridView의 뷰 상태에 액세스하고 싶지 않습니다. 이는 컨트롤의 내부 구현 세부 사항이며 언제든지 변경 될 수 있습니다.

새 데이터를 설정하고 컨트롤에 업데이트 된 데이터가 표시된 후에 GridView에 DataBind()을 호출하면됩니다.

+0

@ user764754 수행 한 작업 중 일부를 게시 할 수 있습니까? 그러나 그것은 단지 다시 바인딩해야 할 것처럼 들립니다. –

+0

새 데이터 만 설정하면 GridView는 다른 것을 표시하지 않습니다. 새로운 데이터를 DataBind하면 ViewState의 이전 데이터가 손실됩니다. PostBack이 발생할 때 새로운 쿼리를 만들고 싶지 않기 때문에 새로운 데이터가 코드 뒤에 있고 오래된 데이터가 GridView의 ViewState에 숨겨져 있습니다 (초기 Page_Load부터). 나는 내일 코드를 게시 할 것이다. 고마워. – user764754

+0

아마도 GridView의 ViewState에 액세스하지 않아도됩니다. 내 솔루션은 지금 쿼리 된 데이터를 직접 ViewState에 저장하는 것입니다. 이 ViewState는 PostBacks에서 이전 데이터를 가져 오는 데 사용됩니다. 이전 데이터가 수정되면 DataBind()가 호출되고 이에 따라 페이지의 ViewState가 업데이트됩니다. 또한 EnableViewState = "False"를 GridView에서 설정하여 페이지의 ViewState 및 GridView의 ViewState에 내 데이터를 저장하지 않도록합니다. 이 해결 방법은 작동합니다. 나는 지금 나의 오래된 코드를 게시해야한다고 생각하지 않는다;) – user764754