程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0頁面狀態持續程序

ASP.NET 2.0頁面狀態持續程序

編輯:關於ASP.NET

ASP.NET 控件的開發人員利用 ViewState 和控件狀態來保持浏覽器發出的各 請求之間的狀態信息。通常,該信息作為由頁面呈現的 HTML 標記中的隱藏字段 傳送給客戶端。然後,該頁面狀態作為下一個窗體提交的一部分傳回服務器並還 原給控件或頁面。即使浏覽器使用 HTTP 協議(該協議定義為無狀態),但利用臨 時存儲狀態信息的功能,控件的開發人員能夠輕松地提供更豐富的應用程序體驗 。

ASP.NET 2.0 允許您修改臨時保持頁面狀態的位置和方式。在某些情況下, 避免在客戶端與服務器之間往返傳送數據可能更為可取。ASP.NET 2.0 提供的兩 個頁面狀態持續程序分別是 HiddenFieldPageState 持續程序(我們已提到過)和 SessionPageStatePersister。SessionPageStatePersister 利用與浏覽器會話 相關的服務器會話存儲數據。使用 SessionPageStatePersister 有正反兩個方 面。對於發送到(自)浏覽器的頁面而言,使用會話(而非隱藏字段)可以避免其大 小的增加。在許多情況中,頁面狀態是全部標記的一個重要部分。然而,在會話 中存儲數據將占用寶貴的服務器資源。此外,隱藏字段不像會話那樣具有相關的 超時。您可以配置一個應用程序,以便將會話保持到後端數據庫,並避免將負載 直接加到 Web 服務器。這也將擴展至 Web 場方案。

要使用除默認持續程序之外的持續程序,需要重寫該頁的 PageStatePersister 屬性,並返回另一個持續程序的一個實例。首先,下面的 一個簡單頁面只使用大量數字填充一個 ArrayList,然後將它綁定到一個 GridView 控件。

以下是引用片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected override PageStatePersister PageStatePersister {

get {

return new SessionPageStatePersister(this);

}
}
protected override void OnLoad(EventArgs e) {

base.OnLoad(e);

if (!IsPostBack) {

ArrayList list = new ArrayList();

for (int i = 0; i < 1000; i++)

{

list.Add(Convert.ToString(i));

}

GridView1.DataSource = list;

GridView1.DataBind();

}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
   <title>Untitled Page</title>
</head>
<body>
   <form id="form1" runat="server">
   <div>
     <asp:GridView ID="GridView1" runat="server" />
     <asp:Button ID="Button1" runat="server" Text="Submit" /></div>
   </form>
</body>
</html>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved