2012-02-12 3 views
1

마스터/세부 편집 (ValidationSummary, 오류 처리, jQuery-ui 대화 상자를 사용하여 세부 정보 팝업 팝업)에 대한 일반적인 불평 작업을 수행하는 ASP.NET 마스터 페이지를 작성하고 있습니다. 마스터보기 및 상세보기에는 두 개의 ContentPlaceHolder 컨트롤이 있으며 마스터 자리 표시 자에는 GridView이 포함되고 세부 자리 표시 자에는 DetailsView 또는 FormView이 포함됩니다.ASP.NET FormView DetailsView 및 다형성

  • ChangeMode 방법
  • DataBind 메서드
  • CurrentMode 속성
  • InsertItem 방법
  • 에 updateItem 방법
  • :

    마스터 페이지는 몇 가지 기본적인은 DetailsView의 구성원 또는 FormView에 액세스해야

DetailsView와 FormView가 동일한 멤버를 가지고 있지만 공통 기본 클래스 또는 인터페이스에서 상속 된 (DataBind 제외) 것은 아닙니다. 두 개의 동일한 열거 형인 FormViewModeDetailsViewMode이 있으므로 ChangeMode 및 CurrentMode 멤버는 동일한 시그니처조차 갖지 않습니다.

래퍼 클래스를 생성하여이 문제를 해결하고자하지만 아무도 이것이 왜 이렇게 구현되는지 설명 할 수 있습니까? 나는 그들을 다형 적으로 사용하려고하여 문제를 저장하고 있는가?

나는 이것이 마이크로 소프트 엔지니어의 의도에 의한 것이 아니라고 생각하기 때문에 다형 적 사용을 방해하려는 의도 만 있다고 결론 지을 수 있습니다.

답변

0

DetailsView와 FormView는 모두 동일한 멤버가 있지만 공통 기본 클래스 또는 인터페이스에서 상속되지 않은 것은 입니다.

예들은 다음과 같습니다

위해 DetailsView : CompositeDataBoundControl, IDataItemContainer,하는 INamingContainer, ICallbackContainer, ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer, IDataBoundItemControl, IDataBoundControl, IFieldControl

FormView : CompositeDataBoundControl, IDataItemContainer,하는 INamingContainer, IPostBackEventHandler, IPostBackContainer , IDataBoundItemControl, IDataBoundControl, IRenderOuterTableControl

+0

나는 목록에있는 회원들을 제외하고 물론 DataBind)는 공통 기본 클래스 또는 인터페이스에서 상속되지 않습니다. – Joe

+0

Microsoft 기술자가 "다형성 사용을 막으려 고합니다"라고 생각하지 않습니다. 아마도 래퍼 사례를 만들려고 할 때 모든 함수/열거 형을 상속하지 않기로 결정한 이유를 알 수 있습니다. –