2011-12-23 1 views
0

シナリオ: Default.aspxは次のとおりです。結果が異なる複数の場所でASPXページのUsercontrol(ascx)を参照する必要があります

<%@ Page MasterPageFile="~/StandardLayout.master" Language="C#" CodeFile="Default.aspx.cs"  Inherits="_Default" %> 
<%@ Register src= "~/Controls/Us.ascx" tagname="AboutUs" tagprefix="site" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server"> 
    <div id="large"> 
     <site:AboutUs ID="AboutUsControl" runat="server" /> 
    </div> 
    <div id="small"> 
     <site:AboutUs ID="AboutUsControl" runat="server" /> 
    </div> 
</asp:Content> 

AboutUs.ascx.csは、ラベルコントロールに値を割り当てます。上記のシナリオでは、ロジックが同じで値の変更のみであるため、「div id = small」内のAboutUsを再利用したいと考えています。

私の質問はAboutUs.ascx.csの中にあります。 ""内に属しているかどうかを調べるには、Label1 = "私はここにいる"ことを確認する必要があります。そうでなければLabel1 = "私はどこにいても"

私はパラメータを渡そうとしていますが、default.aspx.csのコードビハインドに何か必要はありますか?または他の提案。

お勧めします。

答えて

3

両方のユーザーコントロールに固有のIDがあることを確認してください。 AboutUsControl1とAboutUsControl2を使用します。ユーザーコントロールの名前のプロパティを宣言します。

private string _doWhat; 
    public string doWhat 
    { 
     get { return _doWhat; } 
     set { _doWhat = value; } 
    } 

    //Execute the check somewhere in your code to set the text you want.  
    private void Do_Something() 
    { 
     if (_doWhat == "Large") 
     { 
      //display "I am here" 
     } 
     else 
     { 
      //display "I am everywhere" 
     } 
    } 

そしてユーザーコントロールを使用して、ページの背後にあるコードでは、ちょうどパブリック変数呼び出すことで値を渡す:

AboutUsControl1.doWhat = "Large"; 
     AboutUsControl2.doWhat = "Small"; 

か、単に設定をdoWhatコントロール自体:

<site:AboutUs ID="AboutUsControl1" runat="server" doWhat="Large" /> 
<site:AboutUs ID="AboutUsControl2" runat="server" doWhat="Small" /> 
+0

返信ありがとうございます。 – Anirudh

関連する問題