ASP.NET : 重寫頁面輸出內容的2種方式
阿新 • • 發佈:2018-12-30
轉載請註明出處 http://blog.csdn.net/fujie724
正常的網頁輸出到客戶端,通常包含了<html><head><body>。這些內容一般已經在aspx檔案裡寫好了。
但有的時候,我們希望徹底改變頁面輸出的內容,使其完全輸出我們自己想輸出的字串。
例如,我有一個簡單的頁面如下。
<html> <body> 通關密碼:<asp:TextBox ID="txtPWD" runat="server"></asp:TextBox> <asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" /> </body> </html>
該頁面包含了一個文字框控制元件和一個按鈕控制元件。
當文字框填寫了通關密碼"fujie724"之後提交,我們要把原本的頁面改寫成只顯示一個單詞“OK”。這該怎麼做呢?
方法1:
在伺服器端處理,並判斷完之後,輸出字串並結束頁面執行。
值得注意的是,呼叫了Response.End()之後,後面的程式碼就不會執行了。protected void btnSubmit_Click(object sender, EventArgs e) { if (txtPWD.Text == "fujie724") { Response.Write("OK"); Response.End(); } }
方法2:
在頁面呈現階段,過載Render方法,搶走頁面輸出的大權。
protected override void Render(HtmlTextWriter writer) { if (txtPWD.Text == "fujie724") { writer.Write("ok"); } else { base.Render(writer); } }
該方法將在頁面最後執行完畢即將輸出之前,把整個writer拿來為自己所用,輸出自己想輸出的內容即可。
這個方法要注意的是,在不需要處理的情況下,請記得保留base.Render(writer);,讓頁面可以正常顯示。
好了,這兩個是很實用的方法哦,記住了麼?
轉載請註明出處 http://blog.csdn.net/fujie724