2009-07-20 8 views
1

私はdefault.aspxファイルと2つのユーザーコントロールを持っています。私のaspx.csファイルからUserControlにアクセスできないのは何ですか?

ユーザーコントロールのコードユーザーコントロールの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" /> 

コード2

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

私は、ユーザーコントロール2の私のソースコードからユーザーコントロール1にアクセスできないのはなぜ?

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

あなたが見ているエラーは何ですか? – ChrisF

+0

UserCtrl2またはDefaultからUserCtrl1にアクセスしますか? – Sauron

+0

クラスはインテリセンスでも表示されません。私はUC2内から親ユーザコントロールにアクセスしたい。クラスを認識していないようです。 –

答えて

1

あなたがコントロールの名前ではなく、そのクラスにアクセスする必要があります:コンパイルが異なるアセンブリに追加されますので、

control1.DoSomething(); 

は一般的に、ユーザーコントロールクラスは、ASP.Netプロジェクトには表示されません。

0

usercontrol1タイプのusercontrol2にpublicプロパティを作成する必要があります。両方のコントロールのインスタンスをホストするページで、usercontrol1の参照を、usercontrol1タイプのusercontrol2のプロパティに割り当てます。

アクセスできない理由は、usercontrol2にuserocntrol1のインスタンスが必要なためです。この問題は、上述の手法を用いて解決される。

+0

私はこれを試しましたが、うまくいきません。何らかの理由で、私が作成するコントロールやページは、「外の世界」から隠されているようです。私は私のDefault.aspx.csファイルからWebUserControlにアクセスすることはできません。 vs –

+0

と何かが間違っている可能性があります。 VS上のどのバージョンを使用していますか?あなたはウェブサイトやWebアプリケーションプロジェクトを持っていますか?また、ウェブサイトの他のすべてのコンポーネントも適切にコンパイルされています。時には私はいくつかのページには何のエラーもないかもしれないが、ウェブサイトの他の部分ではエラーのために望んだように機能しないかもしれないことが分かった。あなたのウェブサイトが間違いなく完全にコンパイルされているかどうか確認してください。 –

+0

私はVS2010でそれを試してみましたが、うまくいきましたが、私はVS2008で新しいソリューションを開始しました。 –

0

Ucrl:2からUcrl:1にアクセスできますか?パブリックプロパティを公開し、あなたはそれを公開することができるかどうかを確認:

UCRLから:1>ページの読み込み>

Ucr2.MyProp

時々のビルド[ビルド]> [ソリューションのクリーンをやって>ソリューションのリビルドや物事を並べ替えます少なくとも正しいトラックを指すようにしてください。

+0

私は自分のaspxページからこれらのコントロールにアクセスすることすらできません。私はデフォルトではすべてのコントロールがASP名前空間にあると思っていましたが、コントロールはそこに表示されません... きれいなおかげでやります。 –

関連する問題