在asp.net 2.0中,masterpage是個(gè)不錯(cuò)的東西,但有時(shí),要?jiǎng)討B(tài)更換masterpage的,比如我們常常在一些新聞網(wǎng)站里,可以
看到有"print"的按鈕,按PRINT的時(shí)候,會(huì)把主模版的一些花俏的東西去掉,比如只顯示標(biāo)題,日期,頁(yè)腳等,這個(gè)時(shí)候,
我們可以在當(dāng)用戶選擇"print"的時(shí)候,動(dòng)態(tài)調(diào)用一個(gè)新的適合打印的masterpage,比如假設(shè)有個(gè)顯示文章內(nèi)容的詳細(xì)頁(yè)detail.aspx
有個(gè)連接
 <asp:HyperLink ID="Print" runat="Server" >Print</asp:HyperLink>
則在服務(wù)端里這樣寫
public partial class  detail : System.Web.UI.Page {
        bool  ShowPrintImage = true;
        protected void Page_Load(object sender, System.EventArgs e) {
            if (this.ShowPrintImage) {
                this.Print.NavigateUrl = Request.Url.ToString() + "&Print=true";
            } else {
                this.Print.Visible = false;
            }
        }
    }
在page_load里.默認(rèn)將連接print設(shè)置為帶有參數(shù)Print=true;
當(dāng)用戶點(diǎn)選Print連接后,為了動(dòng)態(tài)調(diào)用已經(jīng)設(shè)置好的masterpage,要在pre_init里實(shí)現(xiàn)代碼
     protected void Page_PreInit(Object sender, EventArgs e)
 
{
            if (Request.QueryString["Print"] != null) {
                this.MasterPageFile = "print.master";
                this.ShowPrintImage = false;
            }
        }