国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 97久久精品午夜一区二区 | 免费网站看v片在线成人国产系列 | 国产一级视频 | 国产欧美另类第一页 | 欧美日韩一 | 黄色小视频免费在线观看 | 国产一区二区三区免费视频 | 国产成人久久精品二区三区 | 男女激情网址 | 国产精品久久久久久久成人午夜 | 91久久精品国产91久久性色也 | 欧美第一网站 | 欧美日韩高清一区 | 精品一区二区三区免费毛片爱 | 69视频高清完整版在线观看 | 99久久国产亚洲综合精品 | 国产精品欧美亚洲韩国日本不卡 | 激情欧美在线 | 91精品国产91久久久久久 | 91久久国产情侣真实对白 | 欧美日韩高清在线观看 | 久久午夜一区二区 | 久艹网 | 国产精品免费看 | 精品欧美一区手机在线观看 | 国产l精品国产亚洲区在线观看 | 又黄又爽无遮挡免费视频 | 日韩大片在线观看 | 亚洲 欧美 国产另类首页 | 另类专区 亚洲 | 亚洲免费网站观看视频 | 国外欧美一区另类中文字幕 | 国产精品一区二区在线观看 | 亚洲欧美一区二区三区孕妇 | 亚洲 欧美 国产另类首页 | www.国产精品.com| 欧美一区二区三区香蕉视 | 欧美日韩国产综合在线 | 国产极品久久 | 欧美亚洲综合在线 | 久久久国产成人精品 |