在Web開發的過程中難免會動態去產生一些控制項
如果這些控制項只是顯示用的到沒啥問題
不過如果是要動態生一些具有事件的控制項 要怎麼 一起產生對應的事件呢?
其實這個問題來自於我想偷懶的做法
因為其實大部分的控制項都可以在設計時期就配置好
不管是用很複雜的程式也好 用很多的判斷去控制險式或不顯示也好
但是這樣就難免造成有一堆控制物件顯示或不顯示的程式碼(也就是沒啥功能.卻有一長串.但不好識別)
另外對效能也是個影響 畢竟Web程式是透過網路的
因此為了精簡程式 也為了方便管理 還有一點點為了效能 就去找了相關資料
C# 的動態事件指定與VB.net 不太相同
雖然都叫委派 不過 在MSDN裡面委派可是有一大篇章節 更有一堆範例 實做
不同時機使用不同類型,方法.....等
但我的目的只是解決我的問題....…因此 理論的東西就先擱著吧~~
先說再VB.net中 如果動態產生了一些控制項 如 LinkButton 同時要賦予他事件其做法如下
'動態產生10個LinkButton '動態產生LinkButton '指定顯示的文字 '指定命令名稱引述 當作參數 在對應事件時可用來判斷 '建立事件關聯 Next '接下來 處理該事件 '轉換事件來源的物件 為LinkButton '輸出呼叫此事件按鈕的命令引數 當然可以以此做其他處理 |
//接下來是C#的做法 //相同過程就不在述 例如產生控制項 指定文字 或ID 加入容器..等 //僅說明 產生對應事件的語法 lBtn.Command += new CommandEventHandler(testCommand); //testCommand是我們要處理的事件 //事件處理函式 void pageBtn_Command(object sender, CommandEventArgs e) { //取得呼叫此事件的物件參數 然後就可以做其他處理 string strtest1 = e.CommandArgument; //或者取得物件本身 LinkButton Lbtn = (LinkButton)sender; //取得參數 或命令名稱 string strtest2 = Lbtn.CommandEventArgs ; string strtest3 = Lbtn.CommandName; //然後就可以做其他處理 } |
留言列表