最近在SharePoint2007中用到了WebPart通信技術(shù),個(gè)人覺得2007版本里面的ConnectionConsumer和ConnectionProvider沒有2010版本那么好用,于是換了一種思想去實(shí)現(xiàn)通信:WebPart容器中裝一個(gè)UserControl控件,這樣只要UserControl可以通信,就實(shí)現(xiàn)了WebPart之間通信。
UserControl是用戶自定義控件,我們可以在UserControl中注入事件,當(dāng)一個(gè)UserControl觸發(fā)某種事件,然后通過事件參數(shù)來傳遞數(shù)據(jù),讓其他UserControl獲得這個(gè)事件傳遞過來的參數(shù),實(shí)現(xiàn)通信。
下面簡單演示一下兩個(gè)UserControl進(jìn)行通信
創(chuàng)建好一個(gè)類,兩個(gè)UserControl和一個(gè)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; }
}
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);
} }
UCComsumer.ascx代碼如下:
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;}
}
uc2:ucConsumer runat="server" ID="uc2" UC1Msg="Defalut Value" />
前臺(tái)頁面里面需要注冊(cè)UserControl
%@ 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" />
protected void uc1_myHandle(object sender, MyEventAgrs args)
{
if (args != null)
{
uc2.InitValue(args.MyMsg);
}
else
uc2.UC1Msg = string.Empty;
}
標(biāo)簽:西寧 福州 西藏 宣城 衢州 湖州 紅河 岳陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET UserControl 通信的具體實(shí)現(xiàn)》,本文關(guān)鍵詞 ASP.NET,UserControl,通信,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。