IsPostBack原理的介紹_.Net教程
推薦:c#多圖片上傳并生成縮略圖的實(shí)例代碼今天寫了一個(gè)上傳多張圖片并生成縮略圖的小程序。當(dāng)然因?yàn)槭遣锁B(niǎo),所以寫的一般。但還是學(xué)到了不少東西。現(xiàn)在上代碼。
IsPostback的原理
--------------------------------------------------------------------------------
一步一步讓你看明白。。
先說(shuō)說(shuō)吧,然后在上代碼。ispostback:就是判斷頁(yè)面是首次加載的,還是數(shù)據(jù)回發(fā)(有g(shù)et或者post請(qǐng)求過(guò)的)后的頁(yè)面。上代碼吧,直觀點(diǎn)。
--------------------------------------------------------------------------------
1.asp.net頁(yè)面
--------------------------------------------------------------------------------
<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ā)后的頁(yè)面!"); //點(diǎn)擊button1控件后出現(xiàn)這個(gè)
}
else
{
Response.Write("這是首次加載的頁(yè)面!"); //第一次預(yù)覽出現(xiàn)這個(gè)
}
}
2.html頁(yè)面
--------------------------------------------------------------------------------
(1)由于是純粹的html頁(yè)面,即便點(diǎn)擊提交也無(wú)法,回發(fā)數(shù)據(jù),也就是html頁(yè)面無(wú)法獲取回發(fā)過(guò)來(lái)的值。所以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ā)后的頁(yè)面!");
}
else
{
Response.Write("這是首次加載的頁(yè)面!"); //第一次預(yù)覽出現(xiàn)這個(gè),點(diǎn)擊submit控件后還出現(xiàn)這個(gè)
}
}
(2)這里加了一個(gè)隱藏的viewstate,回發(fā)過(guò)來(lái)的數(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ā)后的頁(yè)面!"); //點(diǎn)擊submit控件后又出現(xiàn)這個(gè)。
}
else
{
Response.Write("這是首次加載的頁(yè)面!"); //第一次預(yù)覽出現(xiàn)這個(gè)。
}
}
小結(jié):其是asp.net頁(yè)面中也有一個(gè)隱藏的viewstate字段,通過(guò)在頁(yè)面上查看源代碼就能看出來(lái),一般為了減少服務(wù)器的壓力,我們通常會(huì)把viewstate禁用掉,那么將不會(huì)用到ispostback判斷是否是數(shù)據(jù)回發(fā)過(guò)的頁(yè)面,那將每次執(zhí)行以下后臺(tái)代碼,如果是讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),那么也將每次都要讀取一下,這里你可能會(huì)擔(dān)心數(shù)據(jù)庫(kù)的壓力過(guò)大,這里我們還有另外的解決辦法,而并非使用viewstate,那就是使用緩存技術(shù)解決這里的問(wèn)題。
分享:.NET中 關(guān)于臟讀 不可重復(fù)讀與幻讀的代碼示例本篇文章小編將為大家介紹,.NET中 關(guān)于臟讀 不可重復(fù)讀與幻讀的代碼示例,有需要的朋友可以參考一下
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 復(fù)雜ASP.NET服務(wù)器控件調(diào)整小技巧
- AJAX實(shí)現(xiàn)web頁(yè)面中級(jí)聯(lián)菜單的設(shè)計(jì)
- .Net基礎(chǔ)之了解ASP.NET中的IFRAME框架掛馬
- 關(guān)于IronPython和C#執(zhí)行速度對(duì)比
- 淺談在.NET應(yīng)用程序中進(jìn)行Erlang風(fēng)格的并行編程
- 解讀 .NET開(kāi)發(fā)者常犯的錯(cuò)誤
- .Net業(yè)務(wù)平臺(tái)的數(shù)值精度陷阱與解決方法
- 淺談ASP.NET兩個(gè)截取字符串的實(shí)用方法技巧
- asp.net備份還原SQLServer實(shí)例代碼程序
- ASP.NET 2.0 中實(shí)現(xiàn)跨頁(yè)提交
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-IsPostBack原理的介紹
。