Substitution Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает раздел на веб-странице с кэшированием выходных данных, исключенной из кэширования. В этом расположении динамический контент извлекается и заменяется элементом 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
- Наследование
Примеры
В следующем примере кода показано, как добавить Substitution элемент управления декларативно на выходную веб-страницу. При загрузке страницы текущей даты и времени отображается пользователю в метке. Этот раздел страницы кэшируется и обновляется только каждые 60 секунд. При выполнении Substitution элемента управления вызывается GetCurrentDateTime метод. Строка, возвращаемая GetCurrentDateTime пользователем, отображается. Этот раздел страницы не кэшируется и обновляется при каждом обновлении страницы.
<%@ 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>
Комментарии
В этом разделе:
Введение
Substitution Используйте элемент управления, чтобы указать раздел на выходной веб-странице, в которой требуется динамическое содержимое, замененное элементом управления. Элемент Substitution управления предлагает упрощенное решение для частичного кэширования страниц для страниц, где большинство содержимого кэшируется. Вы можете кэшировать всю страницу, а затем использовать Substitution элементы управления для указания частей страницы, исключенных из кэширования. Кэшированные регионы выполняются только один раз и воспроизводится из кэша до истечения срока действия записи кэша или очистки. Динамические регионы выполняются при каждом запросе страницы. Эта модель кэширования упрощает код для страниц, которые в основном статически, так как вам не нужно инкапсулировать разделы для кэширования в элементах управления веб-пользователей. Например, эта модель кэширования полезна в сценарии, где есть страница, содержащая статическое содержимое, например новости, и AdRotator элемент управления, отображающий объявления. Новости не изменяются, что означает, что их можно кэшировать. Однако каждый раз, когда пользователь запрашивает страницу, вы хотите отобразить новое объявление. Элемент AdRotator управления напрямую поддерживает подстановку после кэша и отображает новое объявление при каждом публикации страницы независимо от того, кэшируется ли страница.
Замечание
Элемент управления можно разместить Substitution в пользовательском элементе управления, который содержится на кэшированных страницах. Однако вы не можете поместить элемент управления в элемент управления с кэшируемым выходным доступом Substitution .
При выполнении Substitution элемента управления вызывается метод, возвращающий строку. Строка, возвращаемая методом, — это содержимое, отображаемое на странице в расположении Substitution элемента управления. MethodName Используйте свойство, чтобы указать имя метода обратного вызова при Substitution выполнении элемента управления. Указанный метод обратного вызова должен быть статическим методом на странице или пользовательском элементе управления, который содержит элемент Substitution управления. Сигнатура для метода обратного вызова должна соответствовать сигнатуре делегата HttpResponseSubstitutionCallback , который принимает HttpContext параметр и возвращает строку.
Для управления кэшем выходных данных для страницы можно использовать директиву @OutputCache , HttpCachePolicy класс или Cache свойство. Дополнительные сведения о кэшировании страниц см. в разделе "Кэширование" ASP.NET Pages и кэширование частей страницы ASP.NET.
В качестве альтернативы использованию Substitution элемента управления можно также получить поведение кэширования подстановки с помощью делегата HttpResponseSubstitutionCallback . Кроме того, вы можете получить поведение кэширования подстановки для элементов управления, таких как AdRotator элемент управления, который напрямую поддерживает эту функцию. Дополнительные сведения см. в статье динамическое обновление частей кэшированного страницы.
Декларативный синтаксис
<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"
/>
Конструкторы
| Имя | Описание |
|---|---|
| Substitution() |
Инициализирует новый экземпляр класса Substitution. |
Свойства
| Имя | Описание |
|---|---|
| Adapter |
Возвращает адаптер, зависящий от браузера, для элемента управления. (Унаследовано от Control) |
| AppRelativeTemplateSourceDirectory |
Возвращает или задает относительный к приложению виртуальный каталог Page объекта или UserControl объекта, содержащего этот элемент управления. (Унаследовано от Control) |
| BindingContainer |
Возвращает элемент управления, содержащий привязку данных этого элемента управления. (Унаследовано от Control) |
| ChildControlsCreated |
Возвращает значение, указывающее, были ли созданы дочерние элементы управления сервера. (Унаследовано от Control) |
| ClientID |
Возвращает идентификатор элемента управления для разметки HTML, созданной ASP.NET. (Унаследовано от Control) |
| ClientIDMode |
Возвращает или задает алгоритм, используемый для создания значения ClientID свойства. (Унаследовано от Control) |
| ClientIDSeparator |
Возвращает значение символа, представляющее символ разделителя, используемый в свойстве ClientID . (Унаследовано от Control) |
| Context |
HttpContext Возвращает объект, связанный с серверным элементом управления для текущего веб-запроса. (Унаследовано от Control) |
| Controls |
ControlCollection Возвращает объект, представляющий дочерние элементы управления для указанного серверного элемента управления в иерархии пользовательского интерфейса. (Унаследовано от Control) |
| DataItemContainer |
Возвращает ссылку на контейнер именования, если контейнер именования реализует IDataItemContainer. (Унаследовано от Control) |
| DataKeysContainer |
Возвращает ссылку на контейнер именования, если контейнер именования реализует IDataKeysControl. (Унаследовано от Control) |
| DesignMode |
Возвращает значение, указывающее, используется ли элемент управления на поверхности конструктора. (Унаследовано от Control) |
| EnableTheming |
Возвращает или задает значение, указывающее, применяются ли темы к этому элементу управления. (Унаследовано от Control) |
| EnableViewState |
Возвращает или задает значение, указывающее, сохраняет ли серверный элемент управления состояние представления и состояние представления всех дочерних элементов управления, содержащихся в нем, для запрашивающего клиента. (Унаследовано от Control) |
| Events |
Возвращает список делегатов обработчика событий для элемента управления. Это свойство доступно только для чтения. (Унаследовано от Control) |
| HasChildViewState |
Получает значение, указывающее, имеют ли дочерние элементы управления текущего элемента управления серверным элементом управления какие-либо сохраненные параметры состояния представления. (Унаследовано от Control) |
| ID |
Возвращает или задает программный идентификатор, назначенный элементу управления сервером. (Унаследовано от Control) |
| IdSeparator |
Возвращает символ, используемый для разделения идентификаторов элемента управления. (Унаследовано от Control) |
| IsChildControlStateCleared |
Возвращает значение, указывающее, имеют ли элементы управления, содержащиеся в этом элементе управления, состояние элемента управления. (Унаследовано от Control) |
| IsTrackingViewState |
Возвращает значение, указывающее, сохраняется ли серверная система управления изменениями в состоянии представления. (Унаследовано от Control) |
| IsViewStateEnabled |
Возвращает значение, указывающее, включено ли состояние представления для этого элемента управления. (Унаследовано от Control) |
| LoadViewStateByID |
Возвращает значение, указывающее, участвует ли элемент управления в загрузке состояния ID представления вместо индекса. (Унаследовано от Control) |
| MethodName |
Возвращает или задает имя метода обратного вызова, вызываемого Substitution при выполнении элемента управления. |
| NamingContainer |
Возвращает ссылку на контейнер именования серверного элемента управления, который создает уникальное пространство имен для различения между элементами управления сервера с ID одинаковым значением свойства. (Унаследовано от Control) |
| Page |
Возвращает ссылку на Page экземпляр, содержащий серверный элемент управления. (Унаследовано от Control) |
| Parent |
Возвращает ссылку на родительский элемент управления сервера в иерархии элементов управления страницами. (Унаследовано от Control) |
| RenderingCompatibility |
Возвращает значение, указывающее версию ASP.NET, с которым будет совместим отрисованный HTML. (Унаследовано от Control) |
| Site |
Получает сведения о контейнере, на котором размещается текущий элемент управления при отрисовки на поверхности конструктора. (Унаследовано от Control) |
| SkinID |
Возвращает или задает кожу, применяемую к элементу управления. (Унаследовано от Control) |
| TemplateControl |
Возвращает или задает ссылку на шаблон, содержащий этот элемент управления. (Унаследовано от Control) |
| TemplateSourceDirectory |
Возвращает виртуальный Page каталог или UserControl содержащий текущий серверный элемент управления. (Унаследовано от Control) |
| UniqueID |
Возвращает уникальный иерархический идентификатор для элемента управления сервером. (Унаследовано от Control) |
| ValidateRequestMode |
Возвращает или задает значение, указывающее, проверяет ли элемент управления входные данные клиента из браузера для потенциально опасных значений. (Унаследовано от Control) |
| ViewState |
Получает словарь сведений о состоянии, позволяющий сохранять и восстанавливать состояние представления серверного элемента управления в нескольких запросах на одну и ту же страницу. (Унаследовано от Control) |
| ViewStateIgnoresCase |
Возвращает значение, указывающее, является ли StateBag объект нечувствительным к регистру. (Унаследовано от Control) |
| ViewStateMode |
Возвращает или задает режим состояния представления этого элемента управления. (Унаследовано от Control) |
| Visible |
Возвращает или задает значение, указывающее, отображается ли серверный элемент управления в виде пользовательского интерфейса на странице. (Унаследовано от Control) |
Методы
| Имя | Описание |
|---|---|
| AddedControl(Control, Int32) |
Вызывается после добавления дочернего Control элемента управления в Controls коллекцию объекта. (Унаследовано от Control) |
| AddParsedSubObject(Object) |
Уведомляет серверный элемент управления о том, что элемент , XML или HTML, был проанализирован, и добавляет элемент в объект элемента управления ControlCollection сервера. (Унаследовано от Control) |
| ApplyStyleSheetSkin(Page) |
Применяет свойства стиля, определенные в таблице стилей страницы, к элементу управления. (Унаследовано от Control) |
| BeginRenderTracing(TextWriter, Object) |
Начинает трассировку данных отрисовки во время разработки. (Унаследовано от Control) |
| BuildProfileTree(String, Boolean) |
Собирает сведения о серверном элементе управления и передает его Trace свойству, которое будет отображаться при включении трассировки для страницы. (Унаследовано от Control) |
| ClearCachedClientID() |
Задает кэшированное ClientID значение |
| ClearChildControlState() |
Удаляет сведения о состоянии элемента управления для дочерних элементов управления сервера. (Унаследовано от Control) |
| ClearChildState() |
Удаляет сведения о состоянии представления и состояния элемента управления для всех дочерних элементов управления сервера. (Унаследовано от Control) |
| ClearChildViewState() |
Удаляет сведения о состоянии представления для всех дочерних элементов управления сервера. (Унаследовано от Control) |
| ClearEffectiveClientIDMode() |
ClientIDMode Задает свойство текущего экземпляра элемента управления и всех дочерних элементов управленияInherit. (Унаследовано от Control) |
| CreateChildControls() |
Вызывается платформой страницы ASP.NET, чтобы уведомить серверные элементы управления, использующие реализацию на основе композиции, чтобы создать все дочерние элементы управления, содержащиеся в подготовке к публикации обратной или отрисовки. (Унаследовано от Control) |
| CreateControlCollection() |
Возвращает объект, указывающий EmptyControlCollection , что Substitution элемент управления не поддерживает дочерние элементы управления. |
| DataBind() |
Привязывает источник данных к вызываемой серверной системе управления и всем дочерним элементам управления. (Унаследовано от Control) |
| DataBind(Boolean) |
Привязывает источник данных к вызываемой серверной системе управления и всем его дочерним элементам управления с возможностью вызвать DataBinding событие. (Унаследовано от Control) |
| DataBindChildren() |
Привязывает источник данных к дочерним элементам управления сервера. (Унаследовано от Control) |
| Dispose() |
Позволяет элементу управления сервера выполнять окончательную очистку перед освобождением из памяти. (Унаследовано от Control) |
| EndRenderTracing(TextWriter, Object) |
Завершает трассировку времени разработки данных отрисовки. (Унаследовано от Control) |
| EnsureChildControls() |
Определяет, содержит ли серверный элемент управления дочерние элементы управления. Если это не так, он создает дочерние элементы управления. (Унаследовано от Control) |
| EnsureID() |
Создает идентификатор для элементов управления, которым не назначен идентификатор. (Унаследовано от Control) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| FindControl(String, Int32) |
Выполняет поиск текущего контейнера именования для элемента управления сервером с указанным |
| FindControl(String) |
Выполняет поиск текущего контейнера именования для элемента управления сервером с указанным |
| Focus() |
Задает фокус ввода элементу управления. (Унаследовано от Control) |
| GetDesignModeState() |
Возвращает данные во время разработки для элемента управления. (Унаследовано от Control) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetRouteUrl(Object) |
Возвращает URL-адрес, соответствующий набору параметров маршрута. (Унаследовано от Control) |
| GetRouteUrl(RouteValueDictionary) |
Возвращает URL-адрес, соответствующий набору параметров маршрута. (Унаследовано от Control) |
| GetRouteUrl(String, Object) |
Получает URL-адрес, соответствующий набору параметров маршрута и имени маршрута. (Унаследовано от Control) |
| GetRouteUrl(String, RouteValueDictionary) |
Получает URL-адрес, соответствующий набору параметров маршрута и имени маршрута. (Унаследовано от Control) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetUniqueIDRelativeTo(Control) |
Возвращает префиксированную часть UniqueID свойства указанного элемента управления. (Унаследовано от Control) |
| HasControls() |
Определяет, содержит ли серверный элемент управления какие-либо дочерние элементы управления. (Унаследовано от Control) |
| HasEvents() |
Возвращает значение, указывающее, регистрируются ли события для элемента управления или любых дочерних элементов управления. (Унаследовано от Control) |
| IsLiteralContent() |
Определяет, содержит ли серверный элемент управления только литеральное содержимое. (Унаследовано от Control) |
| LoadControlState(Object) |
Восстанавливает сведения о состоянии элемента управления из предыдущего запроса страницы, сохраненного методом SaveControlState() . (Унаследовано от Control) |
| LoadViewState(Object) |
Восстанавливает сведения о состоянии представления из предыдущего запроса страницы, сохраненного методом SaveViewState() . (Унаследовано от Control) |
| MapPathSecure(String) |
Извлекает физический путь, с которым сопоставляется виртуальный путь( абсолютный или относительный). (Унаследовано от Control) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnBubbleEvent(Object, EventArgs) |
Определяет, передается ли событие для элемента управления сервером пользовательского интерфейса страницы. (Унаследовано от Control) |
| OnDataBinding(EventArgs) |
Вызывает событие DataBinding. (Унаследовано от Control) |
| OnInit(EventArgs) |
Вызывает событие Init. (Унаследовано от Control) |
| OnLoad(EventArgs) |
Вызывает событие Load. (Унаследовано от Control) |
| OnPreRender(EventArgs) |
Вызывает событие PreRender. |
| OnUnload(EventArgs) |
Вызывает событие Unload. (Унаследовано от Control) |
| OpenFile(String) |
Возвращает используемый Stream для чтения файла. (Унаследовано от Control) |
| RaiseBubbleEvent(Object, EventArgs) |
Назначает любые источники события и ее сведения родительскому элементу управления. (Унаследовано от Control) |
| RemovedControl(Control) |
Вызывается после удаления дочернего Control элемента управления из Controls коллекции объекта. (Унаследовано от Control) |
| Render(HtmlTextWriter) |
Отправляет содержимое элемента управления сервера в предоставленный HtmlTextWriter объект, который записывает содержимое для отрисовки на клиенте. |
| RenderChildren(HtmlTextWriter) |
Выводит содержимое дочерних элементов управления сервера в предоставленный HtmlTextWriter объект, который записывает содержимое для отрисовки на клиенте. (Унаследовано от Control) |
| RenderControl(HtmlTextWriter, ControlAdapter) |
Выводит содержимое элемента управления сервером в предоставленный HtmlTextWriter объект с помощью предоставленного ControlAdapter объекта. (Унаследовано от Control) |
| RenderControl(HtmlTextWriter) |
Выводит содержимое сервера управления в предоставленный HtmlTextWriter объект и сохраняет сведения о трассировке элемента управления, если трассировка включена. (Унаследовано от Control) |
| ResolveAdapter() |
Возвращает адаптер управления, отвечающий за отрисовку указанного элемента управления. (Унаследовано от Control) |
| ResolveClientUrl(String) |
Получает URL-адрес, который может использоваться браузером. (Унаследовано от Control) |
| ResolveUrl(String) |
Преобразует URL-адрес в url-адрес, который можно использовать на запрашиваемом клиенте. (Унаследовано от Control) |
| SaveControlState() |
Сохраняет все изменения состояния управления сервером, которые произошли с момента публикации страницы на сервер. (Унаследовано от Control) |
| SaveViewState() |
Сохраняет все изменения состояния представления представления сервера, которые произошли с момента отправки страницы на сервер. (Унаследовано от Control) |
| SetDesignModeState(IDictionary) |
Задает данные во время разработки для элемента управления. (Унаследовано от Control) |
| SetRenderMethodDelegate(RenderMethod) |
Назначает делегат обработчика событий для отрисовки элемента управления сервером и его содержимого в родительский элемент управления. (Унаследовано от Control) |
| SetTraceData(Object, Object, Object) |
Задает данные трассировки для трассировки данных отрисовки во время разработки, используя объект трассировки, ключ данных трассировки и значение данных трассировки. (Унаследовано от Control) |
| SetTraceData(Object, Object) |
Задает данные трассировки для трассировки данных отрисовки во время разработки, используя ключ данных трассировки и значение данных трассировки. (Унаследовано от Control) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| TrackViewState() |
Вызывает отслеживание изменений состояния представления в серверном элементе управления, чтобы они могли храниться в объекте серверного элемента управления StateBag . Этот объект доступен через ViewState свойство. (Унаследовано от Control) |
События
| Имя | Описание |
|---|---|
| DataBinding |
Происходит, когда серверный элемент управления привязывается к источнику данных. (Унаследовано от Control) |
| Disposed |
Происходит при освобождении серверного элемента управления из памяти, который является последним этапом жизненного цикла управления сервера при запросе страницы ASP.NET. (Унаследовано от Control) |
| Init |
Происходит при инициализации серверного элемента управления, который является первым шагом в его жизненном цикле. (Унаследовано от Control) |
| Load |
Происходит при загрузке серверного элемента управления в Page объект. (Унаследовано от Control) |
| PreRender |
Происходит после Control загрузки объекта, но до отрисовки. (Унаследовано от Control) |
| Unload |
Происходит при выгрузке серверного элемента управления из памяти. (Унаследовано от Control) |
Явные реализации интерфейса
Методы расширения
| Имя | Описание |
|---|---|
| FindDataSourceControl(Control) |
Возвращает источник данных, связанный с элементом управления данными для указанного элемента управления. |
| FindFieldTemplate(Control, String) |
Возвращает шаблон поля для указанного столбца в контейнере именования указанного элемента управления. |
| FindMetaTable(Control) |
Возвращает объект метатабли для содержащего элемента управления данными. |