场景: Default.aspx如下所示。
<%@ 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中的代码隐藏中做任何事情吗?或任何其他建议。
请建议。
答案 0 :(得分:3)
确保两个用户控件都具有唯一ID。我将使用AboutUsControl1和AboutUsControl2。声明用户控件的name属性:
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" />