2012-07-18 20 views
0

Im은 ASP.NET을 통해 렌더링 된 마크 업에서 요소에 대해 'name'속성이 어떻게 작동하는지 이해하려고 시도합니다.ASP.NET에서 'name'속성은 어떻게 계산됩니까?

<select id="lblxyz" name="ctl00$c$ctl341$lblxyz">

ctl00, cctl1341은 무엇입니까? 나는 WebControl을 작성하는 경우

name 속성은 컨테이너의 ID를 반영하지 않는 것, 다음의 Controls 수집 내부 Button을 배치, 그것을 임의의 ID를 제공?

답변

2

중요한 점은 모든 컨트롤이이 동작을 유발하지 않는다는 것입니다. 열쇠는 INamingContainer 인터페이스입니다. 네임 컨테이너 만 네가 보았 듯이 컨트롤의 이름에 기여할 것이고, 다른 컨트롤은 그렇지 않을 것이다.

위의 MSDN 페이지는 페이지 개체의 컨트롤 계층 구조 내에 새 ID 네임 스페이스를 만드는 컨테이너 컨트롤을 식별합니다.

1

ctl00로 시작하고 나머지는 컨트롤의 위치를 ​​제어 연수에 따라 생성됩니다 계층. INamingContainer 인터페이스를 구현하는 모든 상위 컨트롤은 모든 하위 컨트롤에 대해 생성 된 이름에 기여합니다.

이 당신에게 관심을 가질
관련 문제