2010-11-25 4 views
3

일반적인 문제입니다.사용자 정의 컨트롤에서 상속하는 ASP.NET 사용자 정의 컨트롤은 Null 참조를 생성합니다.

  • 사용자 제어 A는
  • 사용자 컨트롤 B 페이지의 Page_Load 이벤트 동안 페이지 P.

에 배치

  • 사용자 컨트롤 B가 사용자 제어 A.에서 상속있는 TextBox T.을 가지고 P, TextBox T에 액세스하려고하면 null이라는 것을 알 수 있습니다.

    우아한 해결책이 있습니까?

  • +1

    스택 광고 배너를 인용하십시오 : "당신은 코드를 해칠까요?" (코드 제발) – RPM1984

    답변

    7

    UserControls로부터 UserControls를 상속하는 것은 좋은 전략이 아닙니다. 부모 UserControl의 요소는 렌더링되지 않습니다. 이것이 TextBox가 null 인 이유입니다.

    더 좋은 옵션은 UserControl A가 UserControl B에 포함되도록하는 것입니다.이 방법으로 UserControl A의 요소는 다른 UserControls에서 다시 사용할 수 있습니다.

    UserControls - How (if at all) can you make an ASP.NET UserControl inherit from another UserControl? 상속에 대한 다른 게시물을 한번보십시오.

    1

    컨트롤 B의 ASCX에는 텍스트 상자 T? 텍스트 박스 T가 null이 아니기 위해서 필요하다. controlB에 텍스트 상자 T가 포함되지 않은 경우 코드 숨김으로 선언 된 속성은 프런트 엔드 컨트롤에 바인딩되지 않으므로 null로 남습니다.

    관련 문제