PageAdapter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
針對特定的瀏覽器來配置網頁,並提供基底類別,而所有頁面配置器都會直接或間接繼承自此基底類別。
public ref class PageAdapter abstract : System::Web::UI::Adapters::ControlAdapter
public abstract class PageAdapter : System.Web.UI.Adapters.ControlAdapter
type PageAdapter = class
inherit ControlAdapter
Public MustInherit Class PageAdapter
Inherits ControlAdapter
- 繼承
範例
下列程式碼範例示範如何從 類別衍生名為 CustomPageAdapter
的 PageAdapter 類別,並覆寫 RenderBeginHyperlink 方法。 方法 RenderBeginHyperlink 會將名為 src
的屬性新增至超連結,其中包含目前頁面的參考。 在附加至 CustomPageAdapter
的頁面中呈現的所有超連結都會有 src
屬性。
using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.Adapters;
// A derived PageAdapter class.
public class CustomPageAdapter : PageAdapter
{
// Override RenderBeginHyperlink to add an attribute that
// references the referring page.
public override void RenderBeginHyperlink(
HtmlTextWriter writer, string targetUrl,
bool encodeUrl, string softkeyLabel,
string accessKey )
{
string url = null;
// Add the src attribute, if referring page URL is available.
if( Page != null && Page.Request != null &&
Page.Request.Url != null )
{
url = Page.Request.Url.AbsoluteUri;
if( encodeUrl )
url = HttpUtility.HtmlAttributeEncode( url );
writer.AddAttribute( "src", url );
}
// Add the accessKey attribute, if caller requested.
if( accessKey != null && accessKey.Length == 1 )
writer.AddAttribute( "accessKey", accessKey );
// Add the href attribute, encode the URL if requested.
if( encodeUrl )
url = HttpUtility.HtmlAttributeEncode( targetUrl );
else
url = targetUrl;
writer.AddAttribute( "href", url );
// Render the hyperlink opening tag with the added attributes.
writer.RenderBeginTag( "a" );
}
}
Imports System.IO
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.Adapters
' A derived PageAdapter class.
Public Class CustomPageAdapter
Inherits PageAdapter
' Override RenderBeginHyperlink to add an attribute that
' references the referring page.
Public Overrides Sub RenderBeginHyperlink( _
ByVal writer As HtmlTextWriter, ByVal targetUrl As String, _
ByVal encodeUrl As Boolean, ByVal softkeyLabel As String, _
ByVal accessKey As String)
Dim url As String
' Add the src attribute, if referring page URL is available.
If Not (Page Is Nothing) Then
If Not (Page.Request Is Nothing) Then
If Not (Page.Request.Url Is Nothing) Then
url = Page.Request.Url.AbsoluteUri
If encodeUrl Then
url = HttpUtility.HtmlAttributeEncode(url)
End If
writer.AddAttribute("src", url)
End If
End If
End If
' Render the accessKey attribute, if requested.
If Not (accessKey Is Nothing) Then
If accessKey.Length = 1 Then
writer.AddAttribute("accessKey", accessKey)
End If
End If
' Add the href attribute, encode the URL if requested.
If (encodeUrl) Then
url = HttpUtility.HtmlAttributeEncode(targetUrl)
Else
url = targetUrl
End If
writer.AddAttribute("href", url)
' Render the hyperlink opening tag with the added attributes.
writer.RenderBeginTag("a")
End Sub
End Class
備註
類別 PageAdapter 是一種抽象類別,可針對瀏覽器的特定瀏覽器類別調整網頁,由瀏覽器使用 (例如 HTML 或 XHTML) 的標記語言所定義。 轉譯行為的大部分可調整性可以封裝在衍生自 HtmlTextWriter 類別的特製化文字寫入器類別中,因此不一定需要提供頁面配接器。
衍生頁面配接器的大部分成員都是從 Page 類別或控制項配接器呼叫。 首先, Page 類別或控制項配接器會偵測衍生頁面配接器是否存在,然後呼叫成員,或在頁面配接器不存在時提供功能。
類別的成員 PageAdapter 提供下列功能:
CacheVaryByHeaders和 CacheVaryByParams 屬性會定義可用來變更快取的其他 HTTP 標頭和 HTTP
GET
和POST
參數。 它們會在快取初始化期間從 Page 類別呼叫。方法會 GetStatePersister 傳回物件,可用來保存頁面的合併檢視和控制狀態。 如果衍生的頁面配接器存在, PageStatePersister 則會從 屬性參考它。
方法 GetPostBackFormReference 提供 DHTML 程式碼片段,可用來參考腳本中的表單。
如果頁面位於回傳中,此方法 DeterminePostBackMode 會傳回回傳變數的集合。 如果衍生的頁面配接器存在, Page.DeterminePostBackMode 則由 .NET Framework 呼叫,而不是 方法。
如果衍生的頁面配接器存在,控制項 RenderBeginHyperlink 配接器會使用 和 RenderEndHyperlink 方法來轉譯超連結。
方法 RenderPostBackEvent 會轉譯可以提交表單的超連結或回傳用戶端標記。
RegisterRadioButton和 GetRadioButtonsByGroup 方法是由選項按鈕控制項配接器用來參考選項按鈕群組中的其他 RadioButton 控制項。
屬性 ClientState 可透過 類別的內部
ClientState
屬性 Page ,存取物件的合併控制項和檢視狀態 Page 。控制項 TransformText 配接器會使用 方法來執行裝置特定的文字轉換。
建構函式
PageAdapter() |
初始化 PageAdapter 類別的新執行個體。 |
屬性
Browser |
取得對用戶端瀏覽器功能的參考 (此用戶端是發出目前 HTTP 要求的用戶端)。 (繼承來源 ControlAdapter) |
CacheVaryByHeaders |
取得其他 HTTP 標頭的清單,而且會根據此清單為附加此衍生頁面配置器的網頁變更快取。 |
CacheVaryByParams |
從 HTTP GET 和 POST 要求取得其他參數的清單,而且會根據此清單為附加此衍生頁面配置器的網頁變更快取。 |
ClientState |
取得編碼過的字串,其中包含附加此衍生頁面配置器的網頁之檢視和控制項狀態資料。 |
Control |
取得控制項的參考 (指控制項配置器附加的控制項)。 (繼承來源 ControlAdapter) |
Page |
取得對頁面的參考 (與此配置器相關聯的控制項便存在於此頁面中)。 (繼承來源 ControlAdapter) |
PageAdapter |
取得對此頁的頁面配置器的參考 (關聯的控制項便存在於此頁面中)。 (繼承來源 ControlAdapter) |