Partilhar via


Substitution Classe

Definição

Especifica uma seção em uma página da Web de cache de saída isenta de cache. Nesse local, o conteúdo dinâmico é recuperado e substituído pelo controle Substitution.

public ref class Substitution : System::Web::UI::Control
public class Substitution : System.Web.UI.Control
type Substitution = class
    inherit Control
Public Class Substitution
Inherits Control
Herança
Substitution

Exemplos

O exemplo de código a seguir demonstra como adicionar um Substitution controle declarativamente a uma página da Web armazenada em cache de saída. Quando a página é carregada, a data e a hora atuais são exibidas para o usuário em um rótulo. Esta seção da página é armazenada em cache e atualizada apenas a cada 60 segundos. Quando o Substitution controle é executado, ele chama o GetCurrentDateTime método . A cadeia de caracteres retornada por GetCurrentDateTime é exibida para o usuário. Esta seção da página não é armazenada em cache e é atualizada sempre que a página é atualizada.

<%@ outputcache duration="60" varybyparam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" language="C#">  
  
  void Page_Load(object sender, System.EventArgs e)
  {
    // Display the current date and time in the label.
    // Output caching applies to this section of the page.
    CachedDateLabel.Text = DateTime.Now.ToString();    
  }
  
  // The Substitution control calls this method to retrieve
  // the current date and time. This section of the page
  // is exempt from output caching. 
  public static string GetCurrentDateTime (HttpContext context)
  {
    return DateTime.Now.ToString ();
  }
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>Substitution Class Example</title>
</head>
<body>
  <form id="form1" runat="server">
  
    <h3>Substitution Class Example</h3>  
    
    <p>This section of the page is not cached:</p>
    
    <asp:substitution id="Substitution1"
      methodname="GetCurrentDateTime"
      runat="Server">
    </asp:substitution>
    
    <br />
    
    <p>This section of the page is cached:</p>
    
    <asp:label id="CachedDateLabel"
      runat="Server">
    </asp:label>
    
    <br /><br />
    
    <asp:button id="RefreshButton"
      text="Refresh Page"
      runat="Server">
    </asp:button>     

  </form>
</body>
</html>
<%@ outputcache duration="60" varybyparam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" language="VB">  
  
  Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    ' Display the current date and time in the label.
    ' Output caching applies to this section of the page.
    CachedDateLabel.Text = DateTime.Now.ToString()
  End Sub
  
  ' The Substitution control calls this method to retrieve
  ' the current date and time. This section of the page
  ' is exempt from output caching. 
  Shared Function GetCurrentDateTime(ByVal context As HttpContext) As String
    Return DateTime.Now.ToString()
  End Function
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
  <title>Substitution Class Example</title>
</head>
<body>
  <form id="Form1" runat="server">
  
    <h3>Substitution Class Example</h3>  
    
    <p>This section of the page is not cached:</p>
    
    <asp:substitution id="Substitution1"
      methodname="GetCurrentDateTime"
      runat="Server">
    </asp:substitution>
    
    <br />
    
    <p>This section of the page is cached:</p>
    
    <asp:label id="CachedDateLabel"
      runat="Server">
    </asp:label>
    
    <br /><br />
    
    <asp:button id="RefreshButton"
      text="Refresh Page"
      runat="Server">
    </asp:button>     

  </form>
</body>
</html>

Comentários

Neste tópico:

Introdução

Use o Substitution controle para especificar uma seção em uma página da Web armazenada em cache de saída em que você deseja que o conteúdo dinâmico seja substituído pelo controle. O Substitution controle oferece uma solução simplificada para o cache parcial de páginas em que a maior parte do conteúdo é armazenada em cache. Você pode armazenar em cache a página inteira e, em seguida, usar Substitution controles para especificar as partes da página isentas de cache. As regiões armazenadas em cache são executadas apenas uma vez e são reproduzidas do cache até que a entrada de cache expire ou seja limpa. Regiões dinâmicas são executadas sempre que a página é solicitada. Esse modelo de cache simplifica o código para páginas que são principalmente estáticas, pois você não precisa encapsular as seções para armazenar em cache em controles de usuário da Web. Por exemplo, esse modelo de cache é útil em um cenário em que você tem uma página que contém conteúdo estático, como notícias e um AdRotator controle que exibe anúncios. As notícias não mudam, o que significa que elas podem ser armazenadas em cache. No entanto, sempre que um usuário solicita a página, você deseja exibir um novo anúncio. O AdRotator controle dá suporte diretamente à substituição pós-cache e renderiza um novo anúncio sempre que a página é postada novamente, independentemente de a página ser armazenada em cache.

Observação

Você pode colocar um Substitution controle em um controle de usuário contido em uma página armazenada em cache. No entanto, você não pode colocar um Substitution controle em um controle de usuário armazenado em cache de saída.

Quando o Substitution controle é executado, ele chama um método que retorna uma cadeia de caracteres. A cadeia de caracteres retornada pelo método é o conteúdo a ser exibido na página no local do Substitution controle. Use a MethodName propriedade para especificar o nome do método de retorno de chamada a ser invocado quando o Substitution controle for executado. O método de retorno de chamada que você especificar deve ser um método estático na página ou controle de usuário que contém o Substitution controle . A assinatura do método de retorno de chamada deve corresponder à assinatura de um HttpResponseSubstitutionCallback delegado que usa um HttpContext parâmetro e retorna uma cadeia de caracteres.

Para manipular o cache de saída de uma página, você pode usar a diretiva @ OutputCache , a HttpCachePolicy classe ou a Cache propriedade . Para obter mais informações sobre o cache de páginas, consulte Armazenando em cache ASP.NET Páginas e Armazenando partes em cache de uma página ASP.NET.

Como alternativa ao uso do Substitution controle , você também pode obter o comportamento de cache de substituição usando um HttpResponseSubstitutionCallback delegado. Além disso, você pode obter o comportamento de cache de substituição em controles, como o controle , que dão suporte diretamente a AdRotator esse recurso. Para obter mais informações, consulte Atualizando dinamicamente partes de uma página armazenada em cache.

Sintaxe declarativa

<asp:Substitution  
    EnableTheming="True|False"  
    EnableViewState="True|False"  
    ID="string"  
    MethodName="string"  
    OnDataBinding="DataBinding event handler"  
    OnDisposed="Disposed event handler"  
    OnInit="Init event handler"  
    OnLoad="Load event handler"  
    OnPreRender="PreRender event handler"  
    OnUnload="Unload event handler"  
    runat="server"  
    SkinID="string"  
    Visible="True|False"  
/>  

Construtores

Substitution()

Inicializa uma nova instância da classe Substitution.

Propriedades

Adapter

Obtém o adaptador específico de navegador para o controle.

(Herdado de Control)
AppRelativeTemplateSourceDirectory

Obtém ou define o diretório virtual relativo de aplicativo do objeto Page ou UserControl que contém este controle.

(Herdado de Control)
BindingContainer

Obtém o controle que contém a vinculação de dados desse controle.

(Herdado de Control)
ChildControlsCreated

Obtém um valor que indica se os controles filho do controle de servidor foram criados.

(Herdado de Control)
ClientID

Obtém a ID de controle de marcação HTML gerada pelo ASP.NET.

(Herdado de Control)
ClientIDMode

Obtém ou define o algoritmo usado para gerar o valor da propriedade ClientID.

(Herdado de Control)
ClientIDSeparator

Obtém um valor de caractere que representa o caractere separador usado na propriedade ClientID.

(Herdado de Control)
Context

Obtém o objeto HttpContext associado ao controle de servidor para a solicitação da Web atual.

(Herdado de Control)
Controls

Obtém um objeto ControlCollection que representa os controles filho para um controle de servidor especificado na hierarquia de interface do usuário.

(Herdado de Control)
DataItemContainer

Obtém uma referência ao contêiner de nomenclatura se o contêiner de nomenclatura implementa o IDataItemContainer.

(Herdado de Control)
DataKeysContainer

Obtém uma referência ao contêiner de nomenclatura se o contêiner de nomenclatura implementa o IDataKeysControl.

(Herdado de Control)
DesignMode

Obtém um valor que indica se um controle está sendo usado em uma superfície de design.

(Herdado de Control)
EnableTheming

Obtém ou define um valor que indica se os temas se aplicam a esse controle.

(Herdado de Control)
EnableViewState

Obtém ou define um valor que indica se o controle de servidor persiste seu estado de exibição e o estado de exibição de quaisquer controles filho que ele contém, para o cliente solicitante.

(Herdado de Control)
Events

Obtém uma lista de delegados de manipulador de eventos para o controle. Esta propriedade é somente para leitura.

(Herdado de Control)
HasChildViewState

Obtém um valor que indica se os controles filho do controle de servidor atual têm alguma configuração de estado de exibição salva.

(Herdado de Control)
ID

Obtém ou define o identificador programático atribuído ao controle de servidor.

(Herdado de Control)
IdSeparator

Obtém o caractere usado para separar identificadores de controle.

(Herdado de Control)
IsChildControlStateCleared

Obtém um valor que indica se os controles contidos dentro deste controle têm estado de controle.

(Herdado de Control)
IsTrackingViewState

Obtém um valor que indica se o controle de servidor está salvando alterações no estado de exibição.

(Herdado de Control)
IsViewStateEnabled

Obtém um valor que indica se o estado de exibição está habilitado para esse controle.

(Herdado de Control)
LoadViewStateByID

Obtém um valor que indica se o controle participa do carregamento do estado de exibição por ID em vez do índice.

(Herdado de Control)
MethodName

Obtém ou define o nome do método de retorno de chamada a ser invocado quando o controle Substitution é executado.

NamingContainer

Obtém uma referência ao contêiner de nomenclatura do controle do servidor, que cria um namespace exclusivo para diferenciar entre os controles de servidor com o mesmo valor da propriedade ID.

(Herdado de Control)
Page

Obtém uma referência para a instância Page que contém o controle de servidor.

(Herdado de Control)
Parent

Obtém uma referência ao controle pai do controle de servidor na hierarquia de controle da página.

(Herdado de Control)
RenderingCompatibility

Obtém um valor que especifica a versão do ASP.NET com a qual o HTML renderizado será compatível.

(Herdado de Control)
Site

Obtém informações sobre o contêiner que hospeda o controle atual quando renderizados em uma superfície de design.

(Herdado de Control)
SkinID

Obtém ou define a capa a ser aplicada ao controle.

(Herdado de Control)
TemplateControl

Obtém ou define uma referência ao modelo que contém este controle.

(Herdado de Control)
TemplateSourceDirectory

Obtém o diretório virtual do Page ou UserControl que contém o controle do servidor atual.

(Herdado de Control)
UniqueID

Obtém o identificador exclusivo, qualificado segundo a hierarquia, para o controle de servidor.

(Herdado de Control)
ValidateRequestMode

Obtém ou define um valor que indica se o controle verifica a entrada do cliente do navegador para valores potencialmente perigosos.

(Herdado de Control)
ViewState

Obtém um dicionário de informações de estado que permite salvar e restaurar o estado de exibição de um controle de servidor em várias solicitações para a mesma página.

(Herdado de Control)
ViewStateIgnoresCase

Obtém um valor que indica se o objeto StateBag não diferencia maiúsculas de minúsculas.

(Herdado de Control)
ViewStateMode

Obtém ou define o modo de estado de exibição deste controle.

(Herdado de Control)
Visible

Obtém ou define um valor que indica se um controle de servidor é renderizado como uma interface do usuário na página.

(Herdado de Control)

Métodos

AddedControl(Control, Int32)

Chamado após um controle filho ser adicionado à coleção Controls do objeto Control.

(Herdado de Control)
AddParsedSubObject(Object)

Notifica o controle de servidor de que um elemento, XML ou HTML, foi analisado e adiciona o elemento ao objeto ControlCollection do controle de servidor.

(Herdado de Control)
ApplyStyleSheetSkin(Page)

Aplica as propriedades de estilo definidas na folha de estilos da página ao controle.

(Herdado de Control)
BeginRenderTracing(TextWriter, Object)

Inicia o rastreamento de tempo de design de dados de renderização.

(Herdado de Control)
BuildProfileTree(String, Boolean)

Reúne informações sobre o controle de servidor e as envia para a propriedade Trace para serem exibidas quando o rastreamento está habilitado para a página.

(Herdado de Control)
ClearCachedClientID()

Define o valor ClientID armazenado em cache como null.

(Herdado de Control)
ClearChildControlState()

Exclui as informações de estado de controle para os controles filho do controle de servidor.

(Herdado de Control)
ClearChildState()

Exclui as informações de estado de exibição e de estado de controle para todos os controles filho do controle de servidor.

(Herdado de Control)
ClearChildViewState()

Exclui as informações de estado de exibição para todos os controles filho do controle de servidor.

(Herdado de Control)
ClearEffectiveClientIDMode()

Define a propriedade ClientIDMode da instância de controle atual e de quaisquer controles filho para Inherit.

(Herdado de Control)
CreateChildControls()

Chamado pela estrutura de página do ASP.NET para notificar os controles do servidor que usam a implementação baseada em composição para criar os controles filho para preparar-se para um postback ou renderização.

(Herdado de Control)
CreateControlCollection()

Retorna um objeto EmptyControlCollection, indicando que o controle Substitution não dá suporte a controles filho.

DataBind()

Associa uma fonte de dados ao controle de servidor chamado e a todos os seus controles filho.

(Herdado de Control)
DataBind(Boolean)

Associa uma fonte de dados ao controle de servidor invocado e todos os seus controles filho com uma opção para gerar o evento DataBinding.

(Herdado de Control)
DataBindChildren()

Associa uma fonte de dados aos controles filho do controle do servidor.

(Herdado de Control)
Dispose()

Permite que um controle de servidor execute a limpeza final antes do lançamento da memória.

(Herdado de Control)
EndRenderTracing(TextWriter, Object)

Encerra o rastreamento de tempo de design de dados de renderização.

(Herdado de Control)
EnsureChildControls()

Determinará se o controle de servidor contiver controles filho. Se ele não contiver, ele criará controles filho.

(Herdado de Control)
EnsureID()

Cria um identificador para controles que não têm um identificador atribuído.

(Herdado de Control)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FindControl(String)

Procura o atual contêiner de nomenclatura de um controle de servidor com o parâmetro id especificado.

(Herdado de Control)
FindControl(String, Int32)

Procura o contêiner de nomenclatura atual para um controle de servidor com o id especificado e um inteiro especificado no parâmetro pathOffset, que auxilia na pesquisa. Você não deve substituir esta versão do método FindControl.

(Herdado de Control)
Focus()

Define o foco de entrada para um controle.

(Herdado de Control)
GetDesignModeState()

Obtém os dados de tempo de design para um controle.

(Herdado de Control)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetRouteUrl(Object)

Obtém a URL que corresponde a um conjunto de parâmetros de rota.

(Herdado de Control)
GetRouteUrl(RouteValueDictionary)

Obtém a URL que corresponde a um conjunto de parâmetros de rota.

(Herdado de Control)
GetRouteUrl(String, Object)

Obtém a URL que corresponde a um conjunto de parâmetros de rota e um nome de rota.

(Herdado de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtém a URL que corresponde a um conjunto de parâmetros de rota e um nome de rota.

(Herdado de Control)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUniqueIDRelativeTo(Control)

Retorna a parte prefixada da propriedade UniqueID do controle especificado.

(Herdado de Control)
HasControls()

Determina se o controle de servidor contém algum controle filho.

(Herdado de Control)
HasEvents()

Retorna um valor que indica se os eventos são registrados para o controle ou qualquer controle filho.

(Herdado de Control)
IsLiteralContent()

Determina se o controle de servidor contém apenas o conteúdo literal.

(Herdado de Control)
LoadControlState(Object)

Restaura informações de estado de controle de uma solicitação de página anterior que foi salva pelo método SaveControlState().

(Herdado de Control)
LoadViewState(Object)

Restaura informações de estado de exibição de uma solicitação de página anterior salva pelo método SaveViewState().

(Herdado de Control)
MapPathSecure(String)

Recupera o caminho físico para o qual um caminho virtual é mapeado, relativo ou virtual.

(Herdado de Control)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnBubbleEvent(Object, EventArgs)

Determina se o evento do controle de servidor é passado um nível acima da hierarquia de controle de servidor da interface do usuário da página.

(Herdado de Control)
OnDataBinding(EventArgs)

Aciona o evento DataBinding.

(Herdado de Control)
OnInit(EventArgs)

Aciona o evento Init.

(Herdado de Control)
OnLoad(EventArgs)

Aciona o evento Load.

(Herdado de Control)
OnPreRender(EventArgs)

Aciona o evento PreRender.

OnUnload(EventArgs)

Aciona o evento Unload.

(Herdado de Control)
OpenFile(String)

Obtém um Stream usado para ler um arquivo.

(Herdado de Control)
RaiseBubbleEvent(Object, EventArgs)

Atribui quaisquer fontes de evento e suas informações para o pai do controle.

(Herdado de Control)
RemovedControl(Control)

Chamado após um controle filho ser removido da coleção Controls do objeto Control.

(Herdado de Control)
Render(HtmlTextWriter)

Envia o conteúdo do controle de servidor a um objeto HtmlTextWriter fornecido, que grava o conteúdo a ser renderizado no cliente.

RenderChildren(HtmlTextWriter)

Gera o conteúdo dos filhos de um controle de servidor para um objeto HtmlTextWriter fornecido, que grava o conteúdo a ser renderizado no cliente.

(Herdado de Control)
RenderControl(HtmlTextWriter)

Gera o conteúdo do controle de servidor para um objeto HtmlTextWriter fornecido e armazena informações de rastreamento sobre o controle caso o rastreamento esteja habilitado.

(Herdado de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Gera o conteúdo do controle de servidor a um objeto HtmlTextWriter fornecido usando um objeto ControlAdapter fornecido.

(Herdado de Control)
ResolveAdapter()

Obtém o adaptador de controle responsável por renderizar o controle especificado.

(Herdado de Control)
ResolveClientUrl(String)

Obtém uma URL que pode ser usada pelo navegador.

(Herdado de Control)
ResolveUrl(String)

Converte uma URL em uma que possa ser usada no cliente solicitante.

(Herdado de Control)
SaveControlState()

Salva as alterações de estado do controle de servidor que ocorreram desde a hora em que ocorreu o postback da página no servidor.

(Herdado de Control)
SaveViewState()

Salva alterações de estado de exibição do controle de servidor que ocorreram desde a hora em que ocorreu o postback da página no servidor.

(Herdado de Control)
SetDesignModeState(IDictionary)

Define os dados de tempo de design para um controle.

(Herdado de Control)
SetRenderMethodDelegate(RenderMethod)

Atribui um delegado do manipulador de eventos para renderizar o controle de servidor e seu conteúdo em seu controle pai.

(Herdado de Control)
SetTraceData(Object, Object)

Define os dados de rastreamento para o rastreamento de tempo de design dos dados de renderização, usando a chave e o valor de dados de rastreamento.

(Herdado de Control)
SetTraceData(Object, Object, Object)

Define os dados de rastreamento para o rastreamento de tempo de design dos dados de renderização, usando o objeto rastreado, a chave e o valor de dados de rastreamento.

(Herdado de Control)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TrackViewState()

Causa o acompanhamento das alterações de estado de exibição para o controle de servidor, para que elas possam ser armazenadas no objeto StateBag do controle de servidor. Esse objeto é acessível por meio da propriedade ViewState.

(Herdado de Control)

Eventos

DataBinding

Ocorre quando o controle de servidor é associado a uma fonte de dados.

(Herdado de Control)
Disposed

Ocorre quando um controle de servidor é liberado da memória, que é o último estágio do ciclo de vida de controle de servidor quando uma página ASP.NET é solicitada.

(Herdado de Control)
Init

Ocorre quando o controle de servidor é inicializado, que é a primeira etapa do ciclo de vida.

(Herdado de Control)
Load

Ocorre quando o controle de servidor é carregado no objeto Page.

(Herdado de Control)
PreRender

Ocorre depois que o objeto Control é carregado, mas antes da renderização.

(Herdado de Control)
Unload

Ocorre quando o controle de servidor é descarregado da memória.

(Herdado de Control)

Implantações explícitas de interface

IControlBuilderAccessor.ControlBuilder

Para obter uma descrição desse membro, confira ControlBuilder.

(Herdado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para obter uma descrição desse membro, confira GetDesignModeState().

(Herdado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para obter uma descrição desse membro, confira SetDesignModeState(IDictionary).

(Herdado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para obter uma descrição desse membro, confira SetOwnerControl(Control).

(Herdado de Control)
IControlDesignerAccessor.UserData

Para obter uma descrição desse membro, confira UserData.

(Herdado de Control)
IDataBindingsAccessor.DataBindings

Para obter uma descrição desse membro, confira DataBindings.

(Herdado de Control)
IDataBindingsAccessor.HasDataBindings

Para obter uma descrição desse membro, confira HasDataBindings.

(Herdado de Control)
IExpressionsAccessor.Expressions

Para obter uma descrição desse membro, confira Expressions.

(Herdado de Control)
IExpressionsAccessor.HasExpressions

Para obter uma descrição desse membro, confira HasExpressions.

(Herdado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para obter uma descrição desse membro, confira AddParsedSubObject(Object).

(Herdado de Control)

Métodos de Extensão

FindDataSourceControl(Control)

Retorna a fonte de dados associada ao controle de dados do controle especificado.

FindFieldTemplate(Control, String)

Retorna o modelo do campo para a coluna especificada no contêiner de nomenclatura do controle especificado.

FindMetaTable(Control)

Retorna o objeto metatable para o controle que contém dados.

Aplica-se a

Confira também