2009-11-29 5 views
0

컨트롤을 마스터 페이지의 ContentPlaceHolder에 동적으로로드하는 데 문제가 있습니다. 의 ContentPlaceHolder 및 해당 UserControl의 경로동적으로 마스터 페이지에 컨트롤 추가

이름은 DB에서로드하고이 작은 코드로 전송된다

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

무엇 오전 : 나는 그것을 실행하면

Control c = this.Page.LoadControl(uc-path-from-db);
this.Page.Master.FindControl(cph-name-from-db).Controls.Add(c);

, 나는이 오류 내가 잘못하고있어?

+0

마스터 페이지의 요소에 코드 블록 (<% %>)이 있습니까? – Phaedrus

+0

마크 업이 전혀 없습니다. 이 문제에 대한 검색 좀했을 때 헤드 요소의 코드 블록을 찾는다는 내용의 게시물을 실행했지만 아무 것도 가지고 있지 않습니다. – lopkiju

답변

0

마크 업없이 완전히 지워지지는 않지만 일부 마크 업에 < % ... %> 블록이 포함되어 있기 때문에 컨트롤을 추가 할 수 없다는 메시지가 표시됩니다. 귀하의 마크 업을 생성 할 수 있습니다. < % ... %> 차단을 제거하면 컨트롤을 추가 할 수 있습니다. 보다 완벽한 답변을 원하면 마크 업을 게시하십시오.

+0

흥미롭게도 마크 업은 없습니다. 방금 ​​컨트롤을 추가하고, 프로젝트를 컴파일하고, 프로젝트를 실행하고, 예상되는 UserControl을 데이터없이 추가하고 그 오류를 얻었습니다. 나는 오류 메시지에 대해 완전히 혼란 스럽다. – lopkiju

+0

따라서 마스터 페이지, 페이지 또는 사용자 정의 컨트롤에 코드 블록이 없습니까? –

+0

나는 대답하는 법을 모른다. 페이지에서 코드 블록을 보았습니다.하지만 코드 블록을로드하는 작업이 제대로 작동하지 않기 때문에 컨트롤의 로딩을 방해하지 않는 것 같습니다. 감사합니다. – lopkiju

0

작업중인 웹 프로젝트의 유형에 따라로드 할 마스터 페이지와로드하는 페이지 모두에서 < % @ Register %> UserControl이 있어야합니다 에서. 웹 사이트의 경우이 아닌 웹 응용 프로그램은 각 페이지를 작은 어셈블리에 컴파일하며 태그에 참조 태그가없는 한 usercontrol의 어셈블리를 참조하지 않습니다.

저는 100 % 아니지만 한 번 볼 가치가 있습니다.

+0

웹 응용 프로그램을 사용하고 있는데이 코드를 BaseClass에서 호출합니다. 기본 페이지의 page_load에서 호출하려고 시도했지만로드되지만 컨트롤 안에 텍스트를 넣어도 데이터가 없습니다. – lopkiju

관련 문제