ASP.Net: IsPostBack


Tek 發表



IsPostBack

ASP.Net: IsPostBack 屬性

平常要判斷一個使用者是否已經讀過一個網頁,都要繞遠路來完成• 但是ASP.Net的Page Class 本身存在一個屬性,叫做"IsPostBack"• 它大部份都會用在Page_Load()的Subroutine裡,因為Page_Load()是你每次進入網頁第一個會被讀的... 而也許你會有這種情況: 你只希望某一部份的程式只在網頁被載入時只讀取一次,但你又卻不想繞遠路來寫這一斷程式碼去判斷• 那麼你可以用IsPostBack屬性來完成• (請注意是是載入,不是讀取喔!)

IsPostBack 屬性只回傳回布林值(Boolean),沒錯,就是True和False• 如果傳回True, 則代表這一頁已經被載入過了... 相對的,傳回False則代表這是第一次被載入•

也許您還未瞭解Page_Load()是做什麼的? Page_Load() 是一個事件,一個Sub• 他會在你每一次網頁被讀取時必須會被自動執行! 在ASP.Net這佔了很重要的責任! 在先使用IsPostBack, 先瞭解Page_Load()是很重要的! 因為大部份用IsPostBack時都是在Page_Load()裡執行•

一個使用Page_Load() 的範例:

<Script Language="VB" Runat="Server">
Sub Page_Load()
Response.Write("Hello, world!")
End Sub
</Script>

使用IsPostBack屬性:

<Script Language="VB" Runat="Server">
Sub Page_Load()
If Not Page.IsPostBack Then
my_text.Text = "Ready to process the very first time."
Else
Response.Write("Loaded")
End If
End Sub

Sub run(o as object, e as eventargs)
result.Text = my_text.text
End Sub
</Script>
<form runat="Server">
<br>
<asp:Label runat="server" id="result" />
<br>
<asp:textbox runat="server" id="my_text" />
<br>
<asp:button runat="server" text="Submit" onclick="run" />
</form>

您可以執行上面的程式碼,您會注意到你的輸入欄寫著"Ready to process the very first time." ,然後你填入一些字,按下"Submit",讓程式顯示字出來... 那一個"Ready to process the very first time."就不見了,而且是永遠消失... 為什麼? 反倒之後都出現"Loaded"的字樣,因為網頁已經被載入過啦!

在之後的教學,我將盡量再把IsPostBack 搬出來給大家複習一下啦!

最後更新日期: 6/7/2003 11:00:55 PM