C_Sharp 板


LINE

如果有一些Method想要讓ASP.NET Pages直接共用,那麼我會建議建立自己的Base Page Class。 並讓需要使用共用的Method的ASP.NET Pages繼承它。 當然,如果該Page上的Web User Control想要調用那些共用的Method也是有辦法的。 請參考以下程式碼大概的說明: 1. // 建立一個Base Page Class並且繼承 System.Web.UI.Page public class MyBasePage1 : System.Web.UI.Page { // 這是要共用的Method public void DoSomething() { } } 2. 修改ASP.NET Page使其改繼承自訂的Base Page Class, 由於自訂的類別又繼承自System.Web.UI.Page,所以對ASP.NET來說沒影響。 // 這是第一個ASP.NET Page,改繼承 MyBasePage1 public partial class _Default : MyBasePage1 { protected void Page_Load( object sender, EventArgs e ) { // 呼叫共用的Method DoSomething(); } } // 這是第二個ASP.NET Page,同樣改繼承 MyBasePage1 public partial class Default2 : MyBasePage1 { protected void Page_Load( object sender, EventArgs e ) { // 呼叫共用的Method DoSomething(); } } 因此,以上兩個ASP.NET Pages都能夠呼叫在MyBasePage1類別內的Method,達到共用目的。 3. Web User Control要調用MyBasePage1的Method // 這是一個 WebUserControl... public partial class WebUserControl1 : System.Web.UI.UserControl { protected void Page_Load( object sender, EventArgs e ) { // 取得所屬頁面的參照 MyBasePage1 parentPage = this.Page as MyBasePage1; // 呼叫該頁面上共用的Method parentPage.DoSomething(); } } 以上,希望不難理解。 其實Page與User Control在執行時期都只是一些類別物件而已,要讓它們能夠 達到相互認識,互通有無,還有不少方式,甚至有些是更有彈性的做法。 更彈性的做法,有一些是Design Pattern所提到的方式,就自己思考看看嚕。 另外提醒,上述做法,你可以不只擁有一個自訂的Base Page Class。 可依實務需求去切割成不同目的的Class。譬如說,管理者頁面專屬的Base Page Class。 又採上述做法的專案較大時,只有一層的Base Page Class,可能會稍嫌不足,那就可以再 拉出一層。 因為你原文提到要讓User Control去調用Page的Method,所以我提出上述方法。 以我的經驗而言,User Control不知道Page的細節是比較好的^^" 上述方式的原理同樣可以施於Web User Control,讓Page去設定Web User Control的自訂屬 性,或是調用Web User Control的Method。 ※ 引述《grassboy2 (活力花俏草兒仔政﹞O花俏)》之銘言: : ※ [本文轉錄自 Web_Design 看板] : 作者: grassboy2 (活力花俏草兒仔政﹞O花俏) 看板: Web_Design : 標題: [問題] ASP.NET的使用者控制項呼叫aspx下的function? : 時間: Wed Apr 15 05:19:58 2009 : 嗯嗯… : 最近開始接觸ascx這個玩意… : 話說我是用C#寫的… : 然後我在index.aspx.cs下,針對index.aspx的某個PlaceHolder : 讓他載入userControl.ascx這個使用者控制項… : 那…如果我在index.aspx.cs有一支function f() : 那…我有辦法在userControl.ascx.cs檔下面呼叫f()嗎? : 還是要把f()也copy到userControl.ascx.cs下@@a : (感覺這樣寫有點難維護的說>"<) -- 對於已經無法擁有的 唯一能做的是 不要忘記 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.224.212.65 ※ 編輯: petrushka 來自: 125.224.212.65 (04/15 19:55)
1F:→ TonyQ:如果method量很大 , 應該建立工具類別來進行比較好. 04/15 21:28
2F:推 lcloud:會共用的話應該像樓上說的 把物件拉出來 04/17 23:25







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP