摘要:[ASP.NET]User Control Call Web Page Method 使用Web使用者控制項呼叫Web Page 頁面下的方法
今天 Dotjum 的同事就問Dotjum 怎麼樣用 UserControl 去 Call Web Page 下的 Method , Step 2. 建立一個 WebPage 但改繼承對象為我們建立的 BasePage2 Step 3.建立一個 User Control 把 UserControl 拉到 Web Page裡面, 在 UserControl .cs 程式中做現行this.Page型態的轉型即可讀到 就這樣三個步驟,跑一下你的網頁,就能讓 User Control 去Call Web Page 下的 Method ,很輕鬆簡單。 就能夠直接引用到 BasePage 下的方法及資料,所以這個範例中 Dotjum 就不使用 abstract 的方式,
剛好 Dotjum 那時候在忙,就先請同事先去找答案,後來同事傳來給我,說在 MSDN FORUM 上
也有人再問關於WebControl的問題(前兩天問的),暫時還沒有解,Dotjum就趁開會的空檔來想一下,順便找一下答案,
在外國FORUM How can i to call a public method of page from user control? 這邊就有寫到處理的方法,
這邊 Dotjum 就用該篇說明的方法加上自己這邊的程式碼來做一個說明,話不多說,請看說明
Step 1. 首先要做到共用的方法先在 app_code 下面 建立一個 class 但這個 Class 是繼承 System.Web.UI.Page
並建立一個virtual method 允許在衍生類別中加以覆寫。
Page 下的 Method
這邊 Dotjum 順便說明一下,因為本身 Dotjum 對OO就一直很想多瞭解,但學的很不精,所以有些觀念萬一是錯的,
要麻煩大家更正我一下,而這邊可以看到就 Thomas Sun – MSFT 回答的範例中,他建立的 Base Page 是 abstract
抽像 Class 及 抽像 Method ,所以衍生類必須要完全繼承及Override該方法,所以依照這個範例來說,
像 Dotjum 這樣用一般的 class 也是可以運行,當然有時我們會在 basePage 做其他的事情或共用給其他Page的方法
就不需要一開始設定為 abstract ,而且一般來說,如果你是在 Page 下的話,可以直接透過 base.方法名稱。
例如
當然 Dotjum 有可能有說錯的地方,在麻煩各位可以指導。
有趣嗎?下次在介紹有趣的給你知道。