[ASP.NET] 何謂 Postback / 自訂 Postback 事件

[ASP.NET] 何謂 Postback / 自訂 Postback 事件

1.瀏覽器(Browser)第一次是用Get方式向Server取得資料,此時Page屬性IsPostBack=false;然後執行Page_Load程式

2.使用者在瀏覽器(Browser)按下了一個按鈕,不管按鈕有沒有寫程式碼,程式預設會利用Post的方式重新導向,以便再次執行一次Server端的程式碼。此時IsPostBack=true

<asp:Button ID="Button1" runat="server" Text="Button"/>

3.html控制項加了 type="submit" 也能達到Postback的功能

<input type="submit" id="Button2" value="button" /></div>

4.VS預設具有Postback功能的就只有Button,其它的控制項若是要具有Postback功能只要將控制項的屬性AutoPostBack="True"即可

快照-2009421154317_thumb[1]

5.並非任何控制項都具備 PostBack 功能,使用 GetPostBackEventReference 方法設定Attributes[]

如何利用自訂 Postback 事件

protected void form1_Init(object sender, EventArgs e)
{
    Label3.Attributes["onclick"] = Page.ClientScript.GetPostBackEventReference(Label3, string.Empty);
}
private void Label3_OnClick()
{
    Label1.Text = DateTime.Now.ToString();
}

利用Page.IsPostBack判斷網頁是否是第一次執行

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        Label1.Text = System.DateTime.Now.ToString();
    }
    else
    {
        Label1.Text = "";
    }
}

 

也就是說只要按下控件(具有Postback者),就會產生Postback更新全部網頁

範例下載:ASP_C_Postback.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo