모두 안녕하세요. 모두마스터 페이지를 사용할 때 C#의 콘텐츠 컨트롤에 액세스
저는 ASP.NET에서 페이지를 만들고이 과정에서 마스터 페이지를 사용하고 있습니다.
마스터 페이지에 Content Place Holder 이름 "cphBody"가 있습니다. 여기에는 해당 마스터 페이지가 마스터 페이지 인 각 페이지의 본문이 포함됩니다.
ASP.NET 웹 페이지에는 일부 컨트롤 (단추, Infragistics 컨트롤 등)이 들어있는 Content 태그 ("cphBody"참조)가 있으며 CodeBehind 파일에서 이러한 컨트롤에 액세스하려고합니다. 그러나 Content 태그에 중첩되어 있기 때문에 직접 (this.myControl ...) 할 수는 없습니다.
FindControl 메서드로 해결 방법을 찾았습니다.
ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder) Master.FindControl("cphBody");
ControlType myControl = (ControlType) contentPlaceHolder.FindControl("ControlName");
잘 작동합니다. 그러나, 나는 그것이 아주 좋은 디자인이 아니라고 의심하고 있습니다. 더 우아한 방법을 알고 계신가요?
감사합니다.
Guillaume Gervais.
당신은 뒤에 콘텐츠 페이지의 코드 숨김에서 컨트롤에 액세스하려고, 또는 마스터 페이지의 코드 있는가에 텍스트 상자의 수의 변경? – wulimaster
콘텐츠 페이지의 CodeBehind입니다. –
그건 이상합니다. 동적으로 생성되고 추가되지 않는 한 콘텐트 페이지의 코드 숨김에서 컨트롤에 직접 액세스 할 수 있어야합니다. –