2012-07-16 4 views
0

아약스 날짜 확장기의 사용자 정의 컨트롤 인 "달력"과 날짜를 입력하는 텍스트 상자를 만들었습니다. 이제는 내 테이블에 채워지는 모든 행에 대해이 컨트롤을 동적으로 만들려고합니다. 그것은 다음과 같은 오류를 제공합니다 : - 한 ScriptManager 인스턴스를 페이지에 추가 할 수 있습니다. 여기 여러 웹 사용자 컨트롤을 추가하는 동안 "하나의 ScriptManager 인스턴스 만 페이지에 추가 할 수 있습니다."

코드입니다 : - 내가 전역 변수를 선언 한

tc = new TableCell(); 
      tc.Style["width"] = "15%"; 
      Calendar1 = (ASP.Calendar)LoadControl("../Calendar.ascx"); 
      Calendar1.ID = "tbDate" + Convert.ToString(_id); 
      tc.Controls.Add(Calendar1); 
      tr.Cells.Add(tc); 
      tc.Dispose(); 
      tc = null; 

그리고 : - 공공 ASP.Calendar CALENDAR1 캘린더;

미리 제안 해 주셔서 감사합니다.

+0

calendar.ascx에서 여분의 ScriptManager를 제거 – Aristos

+0

캘린더의 코드 샘플을 표시하십시오 –

답변

0

본격적인 ScriptManager 대신 웹 사용자 정의 컨트롤에서 ScriptManagerProxy 구성 요소를 사용해야합니다. ScriptManagerProxy는 여러분이 원하는 용도로 사용하기 위해 만들어졌습니다.

"ScriptManager 컨트롤이 이미 부모 요소에 정의되어있을 때 페이지에 스크립트 및 서비스 참조를 추가하기 위해 콘텐츠 페이지 및 사용자 컨트롤과 같은 중첩 된 구성 요소를 사용하도록 설정합니다." - http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx

기본적으로 호출 페이지 자체에서 ScriptManager를 사용하고 Calendar.ascx 웹 사용자 정의 컨트롤에서 ScriptManagerProxy 구성 요소를 사용해야합니다.

디자인에서 실제로 허용되지 않는 경우 중첩 된 컨트롤로만 사용되는 두 번째 Calendar.ascx 버전을 만드는 방법은 무엇입니까?

+0

Johanvw ... thx ton ..... ScriptManagerProxy이 내 문제를 해결했습니다. –

+0

환영합니다 :) 다행스럽게 도와 줬습니다! – Johanvw

0

페이지에 스크립트 관리자를 두 번 이상 포함 시켰을 가능성이 있으며 사용자 정의 컨트롤 자체에 포함되었을 수 있습니다.