第七章网页应用程式与状态管理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章网页应用程式与状态管理

Chapter 7 網頁應用程式與狀態管理 本章提要 7 - 1 代表整個網頁的 Page 物件 7 - 2 ASP.NET 網頁的存留週期與 Page 事件 7 - 3 連線要求與回應的 Request、Response 物件 7 - 4 網頁的狀態與 ViewState 7 - 5 使用 Cookie 將狀態儲存在用戶端 7 - 6 使用 Session 於連線時保存狀態 本章提要 7 - 7 Application 物件-在所有使用者間保存狀態 7 - 8 各狀態管理方式的比較 7 - 9 Global.asax-ASP.NET 應用程式檔 7 - 1 代表整個網頁的 Page 物件 ASP.NET 執行網頁時, 會使用 .NET Framework 的 Page 類別衍生代表網頁的類別, 並產生此網頁物件 (以下簡稱 Page 物件) 以回應用戶端要求。 前面章節中已經用過 Page 物件了, 例如第 2 章以 Page.Title 修改網頁標題、第 3 章使用 Page_Load 事件處理程序、第 6 章使用 Page.IsValid 檢查驗證是否通過。 代表整個網頁的 Page 物件 本節會說明 Page 物件其他重要屬性與方法, 以及網頁載入時, Page 物件會產生的事件與相對應的處理程序。 Page 物件重要屬性與方法 下表列出 Page 物件的重要屬性與方法: 檢查是否為 PostBack 前面 4-6 節曾經提到 PostBack 的觀念, 而 Page.IsPostBack 屬性便是用來檢查連線是否為 PostBack, 若 Page.IsPostBack 屬性為 False, 則表示用戶端是第一次連線, 如果為 True, 便代表網頁是因為 PostBack 而重新被執行: 檢查是否為 PostBack 檢查是否為 PostBack 所以只有第一次連線時, Page.IsPostBack 屬性值才會是 False, 而從上面步驟 3 之後, Page.IsPostBack 的屬性值便會是 True。 有時候我們會在網頁第一次連線時進行變數或控制項的初始化;或開啟檔案、連線資料庫取得程式所需資料, 此時便可以藉由檢查 Page.IsPostBack 屬性來避免重複執行這些動作。 檢查是否為 PostBack 假設要製作一個網頁程式如下: 檢查是否為 PostBack 功能 1、2 需要在網頁載入時執行, 不過功能 1 會在網頁『每次』載入時隨機選一本書, 而功能 2 只需要在網頁『第一次』載入時取得所有書籍資料, 之後直接使用即可, 不必每次載入時重複執行, 所以程式只要在 Page.IsPostBack = False 時才產生列表即可。 檢查是否為 PostBack 瞭解程式設計的方式後, 請如下在 Web Form 建立控制項並設定屬性: 檢查是否為 PostBack 然後請建立 Page_Load 事件處理程序, 在其中輸入以下程式碼: 檢查是否為 PostBack 檢查是否為 PostBack 因為尚未介紹檔案與資料庫的存取方式, 所以在第 12 行先以陣列儲存書籍名稱, 並於第 16 行將之加到 CheckBoxList1 控制項中。 Page.IsPostBack 屬性除了以上用途外, 也可以用於檢查網頁是否因為 PostBack 而被載入 (亦即非第一次連線), 使用方式就依照程式的需要而定。 7 - 2 ASP.NET 網頁的存留週期與 Page 事件 Page 的存留週期與事件 Page 的事件處理程序 Page 的存留週期與事件 當我們連線 ASP.NET 網頁時, 伺服器端會有一連串處理過程, 處理完畢後才會將網頁送出, 這一連串的處理過程便稱為 ASP.NET 網頁的存留週期。 存留週期的不同階段會產生不同的 Page 事件: Page 的存留週期與事件 Page 的事件處理程序 因為網頁處理過程會產生許多相關的 Page 事件, 所以我們可以如下建立 Page 各事件的處理程序, 便能依照不同需求在各個階段進行處理: Page 的事件處理程序 由於順序先後緣故, 較早觸發的 Page 事件處理程序所做的動作, 有可能會被順序較後的程序修改與覆蓋。 例如在 Page_Load 事件處理程序設定 Label1.Text 為 abc, 但是某個 Button 的 Click 事件處理程序卻設定 Label1.Text 為 123, 從上表可以看到『處理事件』的順序晚於『載入』, 所以 Label1.Text 屬性會被覆蓋為 123。 Page 的事件處理程序 下面例子將示範各 Page 事件產生的順序, 請先在設計模式下放置一個 Label 控制項 (ID

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档