IsPostBack原理的介紹
IsPostback的原理
--------------------------------------------------------------------------------
一步一步讓你看明白。。
先說說吧,然后在上代碼。ispostback:就是判斷頁面是首次加載的,還是數(shù)據(jù)回發(fā)(有g(shù)et或者post請(qǐng)求過的)后的頁面。上代碼吧,直觀點(diǎn)。
--------------------------------------------------------------------------------
1.asp.net頁面
--------------------------------------------------------------------------------
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
</body>
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("這是回發(fā)后的頁面!"); //點(diǎn)擊button1控件后出現(xiàn)這個(gè)
}
else
{
Response.Write("這是首次加載的頁面!"); //第一次預(yù)覽出現(xiàn)這個(gè)
}
}
2.html頁面
--------------------------------------------------------------------------------
(1)由于是純粹的html頁面,即便點(diǎn)擊提交也無法,回發(fā)數(shù)據(jù),也就是html頁面無法獲取回發(fā)過來的值。所以ispostback為false。
--------------------------------------------------------------------------------
<form action="WebForm1.aspx" method="post">
<input id="Submit1" type="submit" value="submit" />
</form>
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("這是回發(fā)后的頁面!");
}
else
{
Response.Write("這是首次加載的頁面!"); //第一次預(yù)覽出現(xiàn)這個(gè),點(diǎn)擊submit控件后還出現(xiàn)這個(gè)
}
}
(2)這里加了一個(gè)隱藏的viewstate,回發(fā)過來的數(shù)據(jù)存放在viewstate,完成了數(shù)據(jù)回發(fā),ispostback的值也就為true。如果你疑惑如果下次還想要首次加載的數(shù)據(jù)怎么辦,我告訴你,下次讀取數(shù)據(jù)直接從viewstate中讀取,不用再次發(fā)出請(qǐng)求。
--------------------------------------------------------------------------------
<form action="WebForm1.aspx" method="post">
<input type="hidden" name="__viewstate" />
<input id="Submit1" type="submit" value="submit" />
</form>
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("這是回發(fā)后的頁面!"); //點(diǎn)擊submit控件后又出現(xiàn)這個(gè)。
}
else
{
Response.Write("這是首次加載的頁面!"); //第一次預(yù)覽出現(xiàn)這個(gè)。
}
}
小結(jié):其是asp.net頁面中也有一個(gè)隱藏的viewstate字段,通過在頁面上查看源代碼就能看出來,一般為了減少服務(wù)器的壓力,我們通常會(huì)把viewstate禁用掉,那么將不會(huì)用到ispostback判斷是否是數(shù)據(jù)回發(fā)過的頁面,那將每次執(zhí)行以下后臺(tái)代碼,如果是讀取數(shù)據(jù)庫中的數(shù)據(jù),那么也將每次都要讀取一下,這里你可能會(huì)擔(dān)心數(shù)據(jù)庫的壓力過大,這里我們還有另外的解決辦法,而并非使用viewstate,那就是使用緩存技術(shù)解決這里的問題。
- ASP.NET Dictionary 的基本用法示例介紹
- 關(guān)于ASP.NET中TreeView用法的一個(gè)小例子
- ASP.NET服務(wù)器端控件RadioButtonList,DropDownList,CheckBoxList的取值、賦值用法
- 深入理解Asp.net中DataBinder.Eval的用法總結(jié)
- asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法
- asp.net中for和do循環(huán)語句用法分享
- ASP.NET Eval 求值運(yùn)算的一些用法
- TreeView 用法(有代碼)(asp.net)
- asp.net TIDFtp用法介紹
- ASP.NET中IsPostBack用法詳解
相關(guān)文章
sql server中批量插入與更新兩種解決方案分享(asp.net)
xml和表值函數(shù)的相對(duì)復(fù)雜些這里簡單貼一下bcp和SqlDataAdapter進(jìn)行批量跟新插入方法,未經(jīng)整理還望見諒2012-05-05asp.net core2.2多用戶驗(yàn)證與授權(quán)示例詳解
這篇文章主要給大家介紹了關(guān)于asp.net core2.2多用戶驗(yàn)證與授權(quán)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01