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

來源:互聯網
上載者:User

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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.