2013-04-16 2 views
5

System.Web.UI.WebControls.HiddenFieldSystem.Web.UI.WebControls.WebControl 대신 System.Web.UI.Control을 상속하는 이유는 무엇입니까? 숨겨진 필드가 웹 페이지에서 사용된다는 사실이 아니라면 실제로 비논리적 인 배치처럼 보입니다. 왜 이렇게 설계 되었습니까? 당신이 UI.ControlUI.WebControls.WebControl의 주요 차이점은 WebControl는 UI가있는 구성 요소에 대한 기본 클래스 역할을 의미하는 것입니다 WebControl x = new HiddenField();HiddenField는 WebControl이 아니십니까?

+0

'WebControl' 또한'Control'에서 상속받습니다. – Magnus

+0

사실,'HiddenField'를'WebControl'으로 형 변환 할 수 없습니다. (그리고 네, 저는 리팩토링하고 있습니다 :]) – Izzy

답변

5

등의 작업을 수행 할 수없는 경우

그것은 일이 매우 성가신 수 있습니다. 숨겨진 필드는 사용자에게 아무것도 표시하지 않으므로 (결국 숨겨 짐) UI.Control이 더 적합한 기본 클래스입니다.

+0

하지만 CSS를 사용하지 않을 때 숨겨진 필드를 표시 할 수 있다는 것을 모두 알고 있습니다.하지만 로직은 +1입니다. – Izzy

+3

HiddenField는 으로 렌더링됩니다. 이는 CSS가 비활성화 된 경우에도 여전히 숨겨져있을 것입니다. 'display : none;'을 사용하여 다른 HTML 요소로 렌더링 된 경우 CSS, 그래, 여전히 표시됩니다. 그러나 나는 그것이 사실이 아니라고 확신한다. –

+0

리팩터링하는 동안 Width/Heights를 설정 한 WebControls가 대부분 변경된 것으로 나타 났으므로 그러한 속성을 갖는 것이 표시되지 않아야하는 필드에 대해서는 아무런 의미가 없다는 것을 이유가 있습니다. – Izzy

관련 문제