1. 程式人生 > >ASP.NET : 重寫頁面輸出內容的2種方式

ASP.NET : 重寫頁面輸出內容的2種方式

轉載請註明出處 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:

在伺服器端處理,並判斷完之後,輸出字串並結束頁面執行。

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (txtPWD.Text == "fujie724")
        {
            Response.Write("OK");
            Response.End();
        }
    }
值得注意的是,呼叫了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