1. 程式人生 > >asp.net 中 AutoPostBack 和IsPostBack淺析

asp.net 中 AutoPostBack 和IsPostBack淺析

順序是這樣的:先說明一下PostBack的意思,接著講解頁面的IsPostBack屬性,最後講解伺服器控制元件的AutoPostBack 屬性。

首先,什麼是Post呢?

我們通過表單提交資料就是一個簡單的Post請求。

其次,什麼是PostBack呢?

PostBack只比Post多了一個Back單詞(Back的意思也很清除:返回),大概可以這樣理解,Post之後又Back回來了:提交資料之後重新返回。

不知道上面的解釋夠不夠清除,為了加深大家的印象,下面我們以具體的控制元件作介紹。

大家都知道如何定義一個表單,在表單中新增表單標籤、Button按鈕,併為Button按鈕繫結點選事件。當你點選了這個Button按鈕提交表單之後,你會發現瀏覽器的頁面自動重新整理了。其實,這個頁面重新載入的過程就是一次PostBack。

講解了PostBack,我們再來看一下頁面的IsPostBack屬性。

IsPostBack的意思也很好理解:是否是PostBack

當頁面第一次載入,就是說伺服器第一次傳送內容給客戶端,這個時候IsPostBack的值是false,因為客戶端還沒有過postback發生。當有點選事件發生了,伺服器又收到請求了,頁面重新載入了,那麼IsPostBack的值就是true了。

用處:IsPostBack通常的應用就是 if (!IsPostBack) {  。。。。},用來當頁面第一次載入的時候初始化頁面的預設設定。

講解了IsPostBack,最後我們再來看一下伺服器控制元件的AutoPostBack屬性。

AutoPostBack的意思也很好理解:是否是自動PostBack。

Web伺服器控制元件大多數都有AutoPostBack 屬性,意思說自動重新整理。以TextBox控制元件為例,若我們把AutoPostBack 屬性在設定為True,並且指定OnTextChange 的事件程式為何時,當使用者按下「Enter」或是「Tab」讓游標離開此控制元件而且控制元件的內容有所改變時,將自動傳回控制元件現在的內容並觸發Page_Load 事件及OnTextChange 屬性所設定的事件(AutoEventWireUp=true)。支援AutoPostBack 屬性的Web 控制元件以及對應的事件如下表所示:

控制元件名稱 指定觸發事件的屬性
CheckBox OnCheckChanged
CheckBoxList OnSelectedIndexChanged
DropDownList OnSelectedIndexChanged
ListBox OnSelectedIndexChanged
RadioButton OnCheckChanged
RadioButtonList OnSelectedIndexChanged

TextBox OnTextChanged

用處:設定Web控制元件的自動提交、重新整理頁面。

預設是AutoPostBack =false。為什麼會這樣呢?你想想如果這個屬性是true那麼,你點選一次,那麼就像伺服器傳送請求,然後頁面重新載入。一般情況下它是輔助其他控制元件一起應用的,所以一般不要求它是true,當然需要時候,也可以設定成true。

切記:

(1)只有伺服器控制元件才具有AutoPostBack 屬性

(2)PostBack只在通過post方法(如果提交的資料為空,那麼IsPostBack屬性為false)提交請求本頁面的時候才有意義。

(3)IsPostBack本身不是以一個獨立的個體存在的,他是和ViewState 等內容結合起來使用的。

如果你想了解asp.net的狀態管理,請參考:ASP.NET狀態管理

相關推薦

asp.net AutoPostBack IsPostBack淺析

順序是這樣的:先說明一下PostBack的意思,接著講解頁面的IsPostBack屬性,最後講解伺服器控制元件的AutoPostBack 屬性。 首先,什麼是Post呢? 我們通過表單提交資料就是一個簡單的Post請求。 其次,什麼是PostBack呢? PostBack

asp.netcookiesession的存取方法

cookie的存 Response.Cookies["username"].Value = "zhangsan"; Response.Cookies["password"].Value = "111111"; 取cookie if(Request.Cookies["username"]

asp.net,,分別是什麼意思,有什麼區別

在asp.net中經常出現包含這種形式<%%>的html程式碼,總的來說包含下面這樣幾種格式: 一. <%%> 這種格式實際上就是和asp的用法一樣的,只是asp中裡面是vbscript或者javascript程式碼,而在asp.net中是.net

ASP.NET Application_Start Application_End 的觸發時機

Application_Start fires when the first user hits your Web site. Application_End fires when the last user in the site's session times out.

ASP.NET的參數與特殊類型特性

初始 name 泛型類 new console multiple blog net 通過 一、可選參數和命名參數 1、可選參數 語法: [修飾符] 返回類型 方法名(必選參數1...必選參數n,可選參數1..

ASP.NET JSON 的序列化反序列化

urn 序列 del nbsp parseint 代碼 href end user JSON是專門為瀏覽器中的網頁上運行的JavaScript代碼而設計的一種數據格式。在網站應用中使用JSON的場景越來越多,本文介紹ASP.NET中JSON的序列化和反序列化,主要對JSON

ASP.NET共有哪幾種類型的控件?其中,HTML控件、HTML服務器控件WEB服務器控件之間有什麽區別

web服務 編程 用戶 控制 什麽 lin bsp 兼容性 check ASP.NET的控件包括WEB服務器控件、WEB用戶控件、WEB自定義控件、HTML服務器控件和HTML控件。HTML控件、HTML服務器控件和WEB服務器控件之間的區別如下所示。q HTML

ASP.NETJSON的序列化反序列化

沒有 helper mic lar width pty on() dmi 包括 JSON是專門為瀏覽器中的網頁上運行的JavaScript代碼而設計的一種數據格式。在網站應用中使用JSON的場景越來越多,本文介紹ASP.NET中JSON的序列化和反序列化,主要對JSON的

asp.net,<%#%>,<%=%><%%>分別是什麽意思,有什麽區別 --轉

bind ase bbbb pwd write ava int pla public 在asp.net中經常出現包含這種形式<%%>的html代碼,總的來說包含下面這樣幾種格式: 一. <%%> 這種格式實際上就是和asp的用法一樣的,只是asp中

ASP.NET使用UpdatePanel實現區域性非同步重新整理方法攻略(轉)

asp.net UpdatePanel實現非同步區域性重新整理 鑑於最近專案需要,研究了一下UpdatePanel控制元件的使用方法,現總結如下,可能有很多地方不足,還望大家斧正哦,此文的目的也是為了幫助UpdatePanel的初學者,也是為了給自己的學習之路

ASP.NET關於資料匹配查詢的幾點研究(歡迎大神提供更精妙演算法)

相信下面這種情況在ASP.NET開發中會時常遇到:查詢DataTable_2中的某列資料是否全部出現在DataTable_1中,如果是,則提取部分資料,否則輸出提示。 如果是小資料量,任何的迴圈查詢都無所謂。如果大資料量,那就要講究方法了。本人糾結於這種匹配好久,弄了個測試程式。希望大神能夠

ASP.NET利用ApplicationSession統計線上人數、歷史訪問量

          先來簡單說一下ASP.NET中的Application和Session           下圖是我們非常熟悉的Web應用程式的結構:                    在這張圖中,Web伺服器中執行的Web應用程式就是我們所說的Applicati

asp.net webapi讀取引數物件.net core的區別

asp.net 中讀取webapi中的post物件引數時候需要使用[FromBody],讀取get的引數要用到[FromUri]。 例如 [System.Web.Http.HttpGet] public object GetPage([FromUri]ProductSearchInput inp

ASP.NET利用DataGrid控制元件顯示圖片以及在圖片文字上加超連結

資料表:     介面程式碼:                  <asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False" BorderWidth="0px"  PageSiz

ASP.NET的FormsWindows混合驗證

摘要:ASP.NET開發人員曾經問到過如何使用Forms和Windows混合驗證。Paul Wilson提供了一個解決方案來獲得Windows使用者名稱,或者,將使用者轉向登入頁面。 簡介 我曾經遇到很多ASP.NET開發人員問到如何使用Forms和Windows混合

ASP.NET防止頁面多次載入的IsPostBack屬性

    查查msdn,上邊有IsPostBack的定義:獲取一個值,該值指示該頁是否正為響應客戶端回發而載入,或者它是否正被首次載入和訪問。如果是為響應客戶端回發而載入該頁,則為 true;否則為 f

ASP.NET動態建立柱狀圖餅圖

第一步:建立一個新的ASP.NET專案。 開啟Microsoft Visual Studio .NET,點選“檔案(File)”-“新建(New)”-“專案(Project)”,開啟“新建專案(New Project)”對話方塊,在“專案型別(Project Types)”裡

asp.net的Application物件方法

Application屬性 AllKeys   獲取HttpApplicationState集合中的訪問鍵 Count     獲取HttpApplicationState集合中的物件數 Application方法 Add   新增一個新的Application物件變數 Clear  清楚全部的Appli

ASP.net 的頁面繼承實現通用頁面的工廠模式的實現

最近用.Net做web專案的時候遇到了一些問題,就是很多的頁面的處理一樣的,不一樣的就是我們寫的儲存過程不同,為了考慮程式碼的重複利用和可維護性和可 擴充套件性,於是寫了一個對於單據頁面的工廠模式,採用介面的繼承技術,因為我們寫的ASP.net頁面的是程式碼後置的,所以我

Asp.NET設定顏色、字型邊框樣式

一,系統字型的獲取和操作 1,我們取出來全部可用系統字型,並將字型名字繫結到一個DropDownList控制元件 using System.Drawing; using System.Drawing.Text; DropDownList listFontName