문제

이것은 일반적인 것입니다. Databind는 어떻게 일을하는지 ...

ASPX 코드에 바인딩 된 GridView가있는 간단한 페이지가 ObjectDatasource에 있습니다.

ObjectDatasource가 호출 한 select () 함수를보고 초기 부하와 모든 게시물에 호출되는 것을 확인할 수 있습니다. GridView의 데이터에 영향을 미치는 포스트 백에서 발생하는 논리가 있으며, 나중에 게시 한 후 게시물에서 gridview.databind ()를 호출하고 싶습니다.

각 게시물에서 발생하는 자동 리빈딩을 방지하는 방법이 있습니까? 이것은이 컨트롤에 ObjectDatasource를 사용할 수 없다는 것을 의미합니까?

도움이 되었습니까?

해결책

당신은 당신이 찾고있는 미세한 곡물 제어가 불가능하고 코드가 필요하다는 점에서 맞습니다. ASP.NET의 데이터 소스 객체는 A **의 고통 일뿐입니다. 당신은 당신이 그들을 사용하면, 당신은이 자르기와 같은 상황을 반복해서 얻을 수 있다는 것을 알게 될 것입니다.

당신이 찾을 수있는 몇 가지 문제는 다음과 같습니다.

  • 강하게 입력하지 않았습니다
  • 융통성 불가능한 (당신이 언급했듯이)
  • 프레젠테이션 코드를 진흙 투성이

뒤에있는 코드에서 모든 데이터 액세스를 수행했는데 뒤돌아 보지 않았습니다.

다른 팁

나는이 자동 바인딩으로 싸웠고 여기에 솔루션을 게시한다고 생각했습니다.

  1. ASPX 페이지에서 "DataSourceid"를 제거하십시오. 설정되지 않으면 자동 바인딩이 없습니다.
  2. DataBehind에서 DataSourceId를 DataBinding이 필요할 때만 설정하십시오. MyGridView.datasourceid = "MyDatasource";
  3. MyGridView.databind ()에게 전화하지 마십시오. 명시 적으로, 데이터 밴드는 Prerender에서 자동으로 발생합니다.

이것을 알아내는 데 시간이 걸렸지 만 이제는 모든 것이 잘 작동합니다.

문맥

나는 대상이 모든 것을 핸드링하기 때문에 ObjectDatasource를 사용합니다 페이징 그리고 정렬 나에게 자동으로 그리드 뷰의. Linq2SQL과 함께 데이터 계층을 사용하고 있으며 Skip () 메소드를 사용하여 GridView의 한 페이지를 채우는 데 필요한 데이터 양만로드합니다.

사용 selectMethod 그리고 selectCountMethod ObjectDatasource의

예. 데이터 밴드가 발생할 때 이러한 종류의 제어를 원한다면 뒤에있는 코드에서 수행해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top