2009-11-26 2 views
1

프레임 워크 2.0을 사용하고 있으며 포스트 백을 수행 한 후 DataGrid 및 데이터 세트가 어떻게 작동하는지 이해할 수 없습니다. msdn에서는 요청이 다시 게시 인 경우 databind를 다시 수행 할 필요가 없다고 말합니다. 하지만 내 질문은 : datagrid가 없다면 어떻게 datagrid가 레코드를 다시 보여줄 것인가? 나는 asp.net이 쿼리 결과를 캐시에 저장하지만, 확실하지는 않다. .NET이이를 수행하는 데 사용하는 메커니즘이 무엇인지 말해주십시오.ASP.NET 데이터 세트 및 메모리

큰 쿼리 결과 (수백 개)가 있으며 각 50 개의 페이지가 매겨집니다. 사용자가 다음 50 개의 레코드를 선택할 때마다 동일한 쿼리를하지 않으려합니다. 사전에

감사합니다.

답변

2

ASP.NET은 이전 값을 ViewState에 저장하므로 포스트 백간에 손실되지 않습니다.

하지만 귀하의 경우에는 페이지 매김, 새로운 기록에 대해 이야기하고 있습니다. 첫 번째 요청에서 검색하는 경우 viewstate에 저장할 수는 있지만 좋은 생각은 아닙니다. 많은 기록이있는 경우 페이지가 매우 느리게 처리됩니다.

클라이언트가 매번 동일한 데이터를 가져오고 데이터를 표시하는 동안 현재 데이터 변경 사항이 중요하지 않은 경우 asp.net's caching mechanism을 사용하여 캐시 할 수 있습니다.

3

이에 대한 대답은 viewstate가있다. 표시되는 전체 격자는 viewstate에 저장되며 이는 포스트 백에서 지속됩니다.

그리드는 초기 페이지로드시 정의되고 viewstate에 저장됩니다. 사용자가 양식을 다시 게시하기 위해 링크/단추를 클릭하면 viewstate가 디코딩되고 다시 사용할 수 있습니다. 따라서 그리드를 다시 바인딩 할 필요가 없습니다. 그러나 알고 있어야 할 몇 가지주의 사항이있다.

1

ASP.NET WebForms는 모두 ViewState입니다.

개념은 기본적으로 ASP.NET이 페이지의 숨겨진 입력 요소에 정보를 저장 한 다음 폼을 (서버 전체에 랩핑 한) 포스트를 서버에 다시 게시하는 포스트 백을 사용하여 자동으로 서버 측에서 검색한다는 개념입니다.