IsPostBack原理的介紹_.Net教程
推薦:c#多圖片上傳并生成縮略圖的實例代碼今天寫了一個上傳多張圖片并生成縮略圖的小程序。當然因為是菜鳥,所以寫的一般。但還是學到了不少東西。現在上代碼。
IsPostback的原理
--------------------------------------------------------------------------------
一步一步讓你看明白。。
先說說吧,然后在上代碼。ispostback:就是判斷頁面是首次加載的,還是數據回發(有get或者post請求過的)后的頁面。上代碼吧,直觀點。
--------------------------------------------------------------------------------
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("這是回發后的頁面!"); //點擊button1控件后出現這個
}
else
{
Response.Write("這是首次加載的頁面!"); //第一次預覽出現這個
}
}
2.html頁面
--------------------------------------------------------------------------------
(1)由于是純粹的html頁面,即便點擊提交也無法,回發數據,也就是html頁面無法獲取回發過來的值。所以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("這是回發后的頁面!");
}
else
{
Response.Write("這是首次加載的頁面!"); //第一次預覽出現這個,點擊submit控件后還出現這個
}
}
(2)這里加了一個隱藏的viewstate,回發過來的數據存放在viewstate,完成了數據回發,ispostback的值也就為true。如果你疑惑如果下次還想要首次加載的數據怎么辦,我告訴你,下次讀取數據直接從viewstate中讀取,不用再次發出請求。
--------------------------------------------------------------------------------
<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("這是回發后的頁面!"); //點擊submit控件后又出現這個。
}
else
{
Response.Write("這是首次加載的頁面!"); //第一次預覽出現這個。
}
}
小結:其是asp.net頁面中也有一個隱藏的viewstate字段,通過在頁面上查看源代碼就能看出來,一般為了減少服務器的壓力,我們通常會把viewstate禁用掉,那么將不會用到ispostback判斷是否是數據回發過的頁面,那將每次執行以下后臺代碼,如果是讀取數據庫中的數據,那么也將每次都要讀取一下,這里你可能會擔心數據庫的壓力過大,這里我們還有另外的解決辦法,而并非使用viewstate,那就是使用緩存技術解決這里的問題。
分享:.NET中 關于臟讀 不可重復讀與幻讀的代碼示例本篇文章小編將為大家介紹,.NET中 關于臟讀 不可重復讀與幻讀的代碼示例,有需要的朋友可以參考一下
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-IsPostBack原理的介紹。