public string UC1Msg
{
get{return this.lb.Text;}
set{this.lb.Text=value;}
}
public string UC1Msg
{
get{return this.lb.Text;}
set{this.lb.Text=value;}
}
如果用这种方式,在引用UserControl的时候就更加方便了:
复制代码 代码如下:
<uc2:ucConsumer runat="server" UC1Msg="Defalut Value" />
<uc2:ucConsumer runat="server" UC1Msg="Defalut Value" />
Default.aspx代码如下:
前台页面里面需要注册UserControl
复制代码 代码如下:
<%@ Register TagPrefix="uc1" TagName="ucProvider" Src="https://www.jb51.net/~/UserControls/UCProvider.ascx" %>
<%@ Register TagPrefix="uc2" TagName="ucConsumer" Src="https://www.jb51.net/~/UserControls/UCComsumer.ascx" %>
<%@ Register TagPrefix="uc1" TagName="ucProvider" Src="https://www.jb51.net/~/UserControls/UCProvider.ascx" %>
<%@ Register TagPrefix="uc2" TagName="ucConsumer" Src="https://www.jb51.net/~/UserControls/UCComsumer.ascx" %>
再引用
复制代码 代码如下:
<uc1:ucProvider runat="server" OnmyHandle="uc1_myHandle" />
<uc2:ucConsumer runat="server" />
<uc1:ucProvider runat="server" OnmyHandle="uc1_myHandle" />
<uc2:ucConsumer runat="server" />
后台页面:
复制代码 代码如下:
protected void uc1_myHandle(object sender, MyEventAgrs args)
{
if (args != null)
{
uc2.InitValue(args.MyMsg);
}
else
uc2.UC1Msg = string.Empty;
}
protected void uc1_myHandle(object sender, MyEventAgrs args)
{
if (args != null)
{
uc2.InitValue(args.MyMsg);
}
else
uc2.UC1Msg = string.Empty;
}
这样就完成了整个过程。Default.aspx页面仅仅是一个载体或者是中间介质,所有的操作都是在两个UserControl之间进行。但是当页面第一次加载的时候,也就是页面加载好过分下拉框没有被点击之前,这里是没有值传递的。