ASP.NET UserControl 通信的具体实现(2)


  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之间进行。但是当页面第一次加载的时候,也就是页面加载好过分下拉框没有被点击之前,这里是没有值传递的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgfdg.html