很多事情都是必須遇到了才會重視。使用 Master Page 是每個 ASP.NET 程式設計師都必須了解、甚至精通的; 我也一直覺得我對這部份的技術非常精通, 直到我在最近設計的網站遇到某個比較少用到的功能, 才發現有很多事情並沒有原先想像的那麼直覺。什麼事情呢? 就是我原本放置在 Master Page 部份的控制項, 如果我必須在 Content Page 處理它的事件, 應該怎麼做?
一開始, 我覺得這不應該是個問題, 但是真正下手之後, 才發現解法並沒有那麼直覺。經過明查暗訪, 終於找到了解決的方法, 如果你剛好也遇到這個問題, 不妨參考一下我的解法。
其實解法講穿了就沒什麼學問了! 因為它根本就和我在「[入門文章] ASP.NET 事件與委派詳論」一文所描述的做法幾乎是一模一樣的, 但是在這個問題中另外有個關鍵點, 請稍為留意。
首先, 建立一個名為 mp.master 的 Master Page 檔案, 並在裡面放置一個按鈕物件 (Button1), 設定它的 Click 事件處理函式 (Button1_Click). 然後再建立一個 Web Form (例如稱為 Default2.aspx), 並指定它的 Master Page 檔案為 mp.master。
在 mp.master.cs 中加入以下程式碼: