程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 分享一個C#自定義事件的實際應用,

分享一個C#自定義事件的實際應用,

編輯:關於.NET

分享一個C#自定義事件的實際應用,


在C#.NET的開發中,事件是經常接觸到的概念,比如為按鈕添加點擊事件,並寫入點擊按鈕觸發事件要運行的代碼。不管是ASP.NET還是WinForm等各種形式的應用程序,最經常是為系統生成的事件寫具體代碼。如果要自定義事件呢?有的朋友對於自定義事件感覺比較難理解。最近在開發HoverTreeTop項目時,有一個自定義事件的實例,分享一下。HoverTreeTop是一個ASP.NET項目,有一個產品展示的功能,那麼就需為產品添加圖片展示(http://hovertree.com/top/htpro/5dbcb599663b3397.htm),如果是經常網購的朋友就很清楚的。HoverTreeTop項目中添加圖片是作為一個獨立的用戶控件(UCPictureAdd.ascx)實現的,這樣可提高代碼復用性。產品和圖片分別有各自的數據表(分別為HoverTreeTop_product和HoverTreeTop_picture),它們之間的關系也有一個表(HoverTreeTop_ProductPic)。
操作的流程為:先添加產品信息,再進入產品修改頁(ProductAlter.aspx),在修改頁中放置圖片添加用戶控件,使用用戶控件成功添加圖片後,再添加產品和圖片關系。

那麼在後台成功添加圖片後,就需要為圖片和產品指定關系。這裡就用到了C#的自定事件。在添加上傳圖片的用戶控件中,自定義委托和自定義事件,當成功添加圖片後,就觸發事件。而在引用用戶控件的產品修改頁中,則監聽事件,指定事件觸發所執行的方法。

請看UCPictureAdd.ascx.cs代碼:

 public delegate void OperateSuccessHanlder(string fileName); //創建委托

public event OperateSuccessHanlder OperateSuccess;

void OnOperateSuccess(string fileName)
        {
            OperateSuccess?.Invoke(fileName);
        }
protected void button_hewenqi_Click(object sender, EventArgs e)
        {
OnOperateSuccess("hovertree");//這裡傳入值需換為實際值
}

ProductAlter.aspx.cs的代碼:

protected void Page_Load(object sender, EventArgs e)
        { //為控件的事件添加監聽方法
            picAdd1.OperateSuccess += PicAdd1_OperateSuccess;
        }
private void PicAdd1_OperateSuccess(string fileName)
        {
//添加產品和圖片關系
}

所以自定義事件的步驟簡單來說就是,定義委托,定義事件,觸發事件,監聽事件。

涉及到的源碼:
http://hovertree.com/top/code/hovertreepanel/htpanel/hcontrol/ucpictureadd.ascx.htm
http://hovertree.com/top/code/hovertreepanel/htpanel/hcontrol/ucpictureadd.ascx.cs.htm
http://hovertree.com/top/code/hovertreepanel/htpanel/hproduct/productalter.aspx.htm
http://hovertree.com/top/code/hovertreepanel/htpanel/hproduct/productalter.aspx.cs.htm

更詳細代碼可以下載項目源碼:
http://hovertree.com/h/bjaf/hv6cqe5n.htm

轉自:http://hovertree.com/h/bjag/cm8k4ja1.htm

推薦:

http://www.cnblogs.com/sosoft/p/kaifajishu.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved