<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        ASP.NET UserControl 通信的具體實現

        來源:懂視網 責編:小采 時間:2020-11-27 22:40:59
        文檔

        ASP.NET UserControl 通信的具體實現

        ASP.NET UserControl 通信的具體實現:最近在SharePoint2007中用到了WebPart通信技術,個人覺得2007版本里面的ConnectionConsumer和ConnectionProvider沒有2010版本那么好用,于是換了一種思想去實現通信:WebPart容器中裝一個UserControl控件,這樣只要UserControl可以通信
        推薦度:
        導讀ASP.NET UserControl 通信的具體實現:最近在SharePoint2007中用到了WebPart通信技術,個人覺得2007版本里面的ConnectionConsumer和ConnectionProvider沒有2010版本那么好用,于是換了一種思想去實現通信:WebPart容器中裝一個UserControl控件,這樣只要UserControl可以通信

        最近在SharePoint2007中用到了WebPart通信技術,個人覺得2007版本里面的ConnectionConsumer和ConnectionProvider沒有2010版本那么好用,于是換了一種思想去實現通信:WebPart容器中裝一個UserControl控件,這樣只要UserControl可以通信,就實現了WebPart之間通信。

        UserControl是用戶自定義控件,我們可以在UserControl中注入事件,當一個UserControl觸發某種事件,然后通過事件參數來傳遞數據,讓其他UserControl獲得這個事件傳遞過來的參數,實現通信。

        下面簡單演示一下兩個UserControl進行通信

         

        創建好一個類,兩個UserControl和一個web頁面。

        這里分別是MyEventAgrs.cs,UCProvider.ascx,UCComsumer.ascx,Default.aspx。

        MyEventAgrs.cs代碼如下:
        代碼如下:
        public delegate void MyEventHandle(object sender, MyEventAgrs args);
            public class MyEventAgrs : EventArgs
            {
                public MyEventAgrs() { }
                public string MyMsg { get; set; }
            }

        public delegate void MyEventHandle(object sender, MyEventAgrs args);
            public class MyEventAgrs : EventArgs
            {
                public MyEventAgrs() { }
                public string MyMsg { get; set; }
            }

        如果想傳遞其他對象時就只需要修改MyEventAgrs類的MyMsg方法。這里須繼承EventArgs抽象類,用于存放事件參數值,另外需定義一個委托事件,然后在其他的地方使用。

         UCProvider.ascx代碼如下:
        代碼如下:
         public partial class UCProvider : System.Web.UI.UserControl
            {
                public event MyEventHandle myHandle;
                protected void Page_Load(object sender, EventArgs e)
                {
                    this.DropDownList1.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
                }
                void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
                {
                    MyEventAgrs myEvent = new MyEventAgrs();
                    myEvent.MyMsg = DropDownList1.SelectedValue;
                    myHandle(this, myEvent);
                }    }

        public partial class UCProvider : System.Web.UI.UserControl
            {
                public event MyEventHandle myHandle;
                protected void Page_Load(object sender, EventArgs e)
                {
                    this.DropDownList1.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
                }
                void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
                {
                    MyEventAgrs myEvent = new MyEventAgrs();
                    myEvent.MyMsg = DropDownList1.SelectedValue;
                    myHandle(this, myEvent);
                }    }

        這里在前臺頁面中定義了一個DropDownList,并給DropDownList綁定了數據源,不再羅列前臺頁面。我想實現當用戶選擇DropDownList的時候將用戶選擇的DropDownList的值傳遞出去,代碼里面用myHandle(this, myEvent)來初始化事件。

        UCComsumer.ascx代碼如下:
        代碼如下:
         public partial class UCComsumer : System.Web.UI.UserControl
            {
        public void InitValue(string msg) {
                    lb.Text = msg;
                }
        }

        public partial class UCComsumer : System.Web.UI.UserControl
            {
        public void InitValue(string msg) {
                    lb.Text = msg;
                }
        }

        這里賦值的時候也可以用屬性來表示,比如:
        代碼如下:
          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" ID="uc2" UC1Msg="Defalut Value" />

        <uc2:ucConsumer runat="server" ID="uc2" UC1Msg="Defalut Value" />

        Default.aspx代碼如下:

        前臺頁面里面需要注冊UserControl
        代碼如下:
        <%@ Register TagPrefix="uc1" TagName="ucProvider" Src="~/UserControls/UCProvider.ascx" %>
        <%@ Register TagPrefix="uc2" TagName="ucConsumer" Src="~/UserControls/UCComsumer.ascx" %>

        <%@ Register TagPrefix="uc1" TagName="ucProvider" Src="~/UserControls/UCProvider.ascx" %>
        <%@ Register TagPrefix="uc2" TagName="ucConsumer" Src="~/UserControls/UCComsumer.ascx" %>

        再引用

        代碼如下:
        <uc1:ucProvider runat="server" ID="uc1" OnmyHandle="uc1_myHandle" />
        <uc2:ucConsumer runat="server" ID="uc2" />

        <uc1:ucProvider runat="server" ID="uc1" OnmyHandle="uc1_myHandle" />
        <uc2:ucConsumer runat="server" ID="uc2" />

        后臺頁面:
        代碼如下:
        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之間進行。但是當頁面第一次加載的時候,也就是頁面加載好過分下拉框沒有被點擊之前,這里是沒有值傳遞的。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ASP.NET UserControl 通信的具體實現

        ASP.NET UserControl 通信的具體實現:最近在SharePoint2007中用到了WebPart通信技術,個人覺得2007版本里面的ConnectionConsumer和ConnectionProvider沒有2010版本那么好用,于是換了一種思想去實現通信:WebPart容器中裝一個UserControl控件,這樣只要UserControl可以通信
        推薦度:
        標簽: 通訊 實現 通信
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日韩版码免费福利视频| a视频免费在线观看| 在线观看无码AV网站永久免费 | 国产午夜免费福利红片| 亚洲中文字幕乱码AV波多JI| 成人免费无码视频在线网站| 亚洲免费一级视频| 免费精品国偷自产在线在线| 91亚洲视频在线观看| 真人做人试看60分钟免费视频| 亚洲无砖砖区免费| 国产精品视频免费一区二区| 亚洲一区二区三区高清视频| 久久不见久久见中文字幕免费 | 亚洲一区二区三区国产精华液| 性做久久久久久免费观看| 亚洲精品无码久久久久YW| 日产乱码一卡二卡三免费| 免费人成大片在线观看播放| 亚洲免费一区二区| 久草免费福利资源站| 亚洲成a人片在线观看播放| 久久99九九国产免费看小说| 亚洲另类无码专区丝袜| 亚洲国产精品无码久久九九| 久久九九免费高清视频| 亚洲老熟女@TubeumTV| 女人18毛片特级一级免费视频| 特级一级毛片免费看| 亚洲精品自在在线观看| 18成禁人视频免费网站| 亚洲国产欧美一区二区三区| 亚洲av无码乱码在线观看野外| 很黄很污的网站免费| 亚洲免费在线视频播放| 亚洲精品99久久久久中文字幕| a在线免费观看视频| 国产91在线|亚洲| 亚洲宅男天堂在线观看无病毒| 毛片免费全部播放无码| 黄色a三级三级三级免费看|