2009-07-20 3 views
1

나는 default.aspx 파일과 2 개의 사용자 컨트롤을 가지고있다. 2내 aspx.cs 파일에서 UserControl에 액세스 할 수없는 항목은 무엇입니까?

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl2.ascx.cs" Inherits="WebUserControl2" %> 

가 왜 사용자 컨트롤이 내 소스 코드에서 사용자 컨트롤 (1)에 액세스 할 수있는 사용자 제어를위한 1

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> 

<%@ Register Src="~/WebUserControl2.ascx" TagName="wc1" TagPrefix="asp2" %> 

<asp2:wc1 ID="control1" runat="server" /> 

코드 사용자 제어를위한

코드?

protected void Page_Load(object sender, EventArgs e) 
    { 
     WebUserControl //Doesn't work 
    } 
+0

무엇이 오류입니까? – ChrisF

+0

UserCtrl2 또는 Default에서 UserCtrl1에 액세스 하시겠습니까? – Sauron

+0

클래스는 인텔리 센스에도 나타나지 않습니다. UC2 내에서 상위 사용자 정의 컨트롤에 액세스하려고합니다. 클래스를 인식하지 못하는 것 같습니다. –

답변

1

당신은하지의 클래스, 컨트롤의 이름으로 접근 할 필요가 :

control1.DoSomething(); 

는 일반적으로 해당 UserControl 클래스는 ASP.Net 프로젝트에 표시되지 않습니다, 컴파일은 다른 어셈블리에 추가하기 때문이다.

0

당신은 유형 수 UserControl1 UserControl2를에 공개 속성을 만들어야합니다. 두 컨트롤의 인스턴스를 호스팅 할 페이지에서 usercontrol1의 참조를 usercontrol1 유형의 usercontrol2 속성에 할당합니다.

액세스 할 수없는 이유는 usercontrol2에서 userocntrol1의 인스턴스가 필요하기 때문입니다. 이 문제는 위에서 언급 한 접근법을 사용하여 해결됩니다.

+0

시도했지만 작동하지 않습니다. 어떤 이유로, 내가 만드는 모든 컨트롤이나 페이지는 '외부 세계'에서 숨겨져있는 것 같습니다. 내 Default.aspx.cs 파일에서 WebUserControl에 액세스 할 수도 없습니다. vs –

+0

과 관련하여 문제가있을 수 있습니다. 작동해야합니다. VS에서 어떤 버전을 사용하고 있습니까? 웹 사이트 또는 웹 응용 프로그램 프로젝트가 있습니까? 웹 사이트의 다른 모든 구성 요소도 올바르게 컴파일됩니다. 때로는 일부 페이지에 오류가 없지만 웹 사이트의 다른 부분의 오류로 인해 원하는대로 작동하지 않을 수도 있습니다. 오류없이 웹 사이트가 완전히 컴파일되는지 확인하십시오. –

+0

잘 VS2010에서 그것을 시도하고 괜찮 았는데, 그러나, 나는 VS2008에서 새로운 솔루션을 시작하고 그 did'nt. 재설정이 필요할 수도 있습니다. –

0

다른 방법으로 시도해보십시오. Ucrl : 2에서 Ucrl : 1에 액세스 할 수 있습니까? 공용 속성을 노출하고 당신이 그것을 노출 수 있는지 : UCRL에서

: 1> 페이지로드>

Ucr2.MyProp

때로는 빌드> 솔루션 정리 다음> 빌드 솔루션을 다시 물건을 분류하고 적어도 당신을 올바른 길로 인도합니다.

+0

내 aspx 페이지에서이 컨트롤에 액세스 할 수 없습니다. 나는 기본적으로 모든 컨트롤이 ASP 네임 스페이스에 있다고 생각하지만 컨트롤이 거기에 나타나지 않습니다. 깨끗한 감사를 보여줍니다. –

관련 문제