PageAdapter 类

定义

修改网页以适应特定的浏览器,并提供所有页面适配器可直接或间接继承的基类。

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
继承
PageAdapter

示例

下面的代码示例演示如何派生从类命名 CustomPageAdapterPageAdapter 类并重写该方法 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 提供以下功能:

构造函数

PageAdapter()

初始化 PageAdapter 类的新实例。

属性

Browser

获取对发出当前 HTTP 请求的客户端的浏览器功能的引用。

(继承自 ControlAdapter)
CacheVaryByHeaders

获取其他 HTTP 标头的列表,对于已附加此派生的页面适配器的网页,缓存将随这些标头而改变。

CacheVaryByParams

从 HTTP GET 和 POST 请求获得其他参数的列表,对于已附加此派生的页面适配器的网页,高速缓存将随这些参数而改变。

ClientState

获取一个经过编码的字符串,其中包含已附加此派生的页面适配器的网页的视图和控件状态数据。

Control

获取对附加了此控件适配器的控件的引用。

(继承自 ControlAdapter)
Page

获取对与此适配器关联的控件所驻留的页的引用。

(继承自 ControlAdapter)
PageAdapter

获取对关联控件所驻留的页的页适配器的引用。

(继承自 ControlAdapter)

方法

BeginRender(HtmlTextWriter)

在呈现控件前调用。 在派生的 adapter 类中,生成特定目标需要但 HTML 浏览器不需要的开始标记。

(继承自 ControlAdapter)
CreateChildControls()

为复合控件创建特定于目标的子控件。

(继承自 ControlAdapter)
DeterminePostBackMode()

确定网页是否在回发模式下,并返回回发变量的名称/值集合。

DeterminePostBackModeUnvalidated()

返回使用 POST 或 GET 命令发送到该页的名称/值数据集合,而不执行 ASP.NET 在该请求的请求验证。

EndRender(HtmlTextWriter)

在呈现控件后调用。 在派生的 adapter 类中,生成特定目标需要但 HTML 浏览器不需要的结束标记。

(继承自 ControlAdapter)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetPostBackFormReference(String)

返回 DHTML 代码片段,客户端浏览器可用此代码片段引用所发送网页上的窗体。

GetRadioButtonsByGroup(String)

检索由 groupName 指定的一组单选按钮控件。

GetStatePersister()

返回一个对象,网页使用此对象来维护控件和视图状态。

GetType()

获取当前实例的 Type

(继承自 Object)
LoadAdapterControlState(Object)

加载适配器控件状态信息,该信息由 SaveAdapterControlState() 在以前请求与此控件适配器关联的控件所驻留的页时保存。

(继承自 ControlAdapter)
LoadAdapterViewState(Object)

加载适配器视图状态信息,该信息由 SaveAdapterViewState() 在以前请求与此控件适配器关联的控件所驻留的页时保存。

(继承自 ControlAdapter)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnInit(EventArgs)

重写关联控件的 OnInit(EventArgs) 方法。

(继承自 ControlAdapter)
OnLoad(EventArgs)

重写关联控件的 OnLoad(EventArgs) 方法。

(继承自 ControlAdapter)
OnPreRender(EventArgs)

重写关联控件的 OnPreRender(EventArgs) 方法。

(继承自 ControlAdapter)
OnUnload(EventArgs)

重写关联控件的 OnUnload(EventArgs) 方法。

(继承自 ControlAdapter)
RegisterRadioButton(RadioButton)

向指定的单选按钮组的集合添加一个单选按钮控件。

Render(HtmlTextWriter)

为附加了控件适配器的控件生成目标特定的标记。

(继承自 ControlAdapter)
RenderBeginHyperlink(HtmlTextWriter, String, Boolean, String)

将一个包含目标 URL 的超链接开始标记呈现到响应流。

RenderBeginHyperlink(HtmlTextWriter, String, Boolean, String, String)

将一个包含目标 URL 和一个访问键的超链接开始标记呈现到响应流。

RenderChildren(HtmlTextWriter)

为附加了控件适配器的复合控件中的子控件生成特定于目标的标记。

(继承自 ControlAdapter)
RenderEndHyperlink(HtmlTextWriter)

将一个超链接结束标记呈现到响应流。

RenderPostBackEvent(HtmlTextWriter, String, String, String, String)

将回发事件作为超链接呈现到响应流,包括已编码并且可能已加密的视图状态、事件目标和参数。

RenderPostBackEvent(HtmlTextWriter, String, String, String, String, String, String)

将回发事件作为超链接呈现到响应流,包括已编码并且可能已加密的视图状态、事件目标及参数、上一页参数和访问键。

RenderPostBackEvent(HtmlTextWriter, String, String, String, String, String, String, Boolean)

将回发事件作为超链接呈现到响应流,包括已编码的视图状态、事件目标及参数、上一页参数和访问键。

SaveAdapterControlState()

保存控件适配器的控件状态信息。

(继承自 ControlAdapter)
SaveAdapterViewState()

保存控件适配器的视图状态信息。

(继承自 ControlAdapter)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
TransformText(String)

为目标浏览器转换文本。

适用于

另请参阅