@ Implements
Обновлен: Ноябрь 2007
Указывает, что текущий файл приложения ASP.NET (веб-страница, элемент управления пользователя или главная страница) реализует определенный интерфейс .NET Framework.
<%@ Implements interface="ValidInterfaceName" %>
Атрибуты
- interface
Интерфейс, который должен быть реализован на странице или в пользовательском элементе управления.
Заметки
При реализации интерфейса на странице Web Forms можно создать его события, методы и свойства между открывающим и закрывающим тегами элемента <script> в блоке объявлений кода. Эту директиву нельзя использовать для реализации интерфейса в файле с выделенным кодом.
Пример
В следующем примере кода показан пользовательский элемент управления, который включает директиву @ Implements для доступа к шести свойствам интерфейса IWebPart. При реализации данных свойств в пользовательском элементе управления, пользовательский элемент управления получает свойства и внешний вид элемента управления WebPart, если поместить его в элемент управления WebPartZone. Первую часть данного примера кода составляет пользовательский элемент управления; следует поместить данный код в файл и присвоить ему имя CalendarUserControl.ascx.
Вторая часть кода представляет собой страницу для размещения элемента управления пользователя. Обратите внимание, что на данной странице используется директива @ Register для регистрации пользовательского элемента управления, используемого на странице. Также обратите внимание, что если пользовательский элемент управления объявлен в основной части страницы, некоторым свойствам интерфейса IWebPart, таким как Title и Description, значения присваиваются декларативно. Дополнительные сведения о размещении пользовательских элементов управления на страницах Web Forms см. в разделах @ Register, Синтаксис настраиваемых серверных элементов управления и Практическое руководство. Включение пользовательского элемента управления в веб-страницу ASP.NET. Дополнительные сведения о страницах веб-частей см. в разделе Элементы управления веб-частей ASP.NET.
<!-- A user control that implements an interface. -->
<%@ Control language="C#" ClassName="CalendarUserControl" %>
<%@ implements
interface="System.Web.UI.WebControls.WebParts.IWebPart" %>
<script runat="server">
private string m_Description;
private string m_Title;
private string m_TitleIconImageUrl;
private string m_TitleUrl;
private string m_CatalogIconImageUrl;
[Personalizable]
public string Description
{
get
{
object objTitle = ViewState["Description"];
if (objTitle == null)
return String.Empty;
return (string)objTitle;
}
set
{
ViewState["Description"] = Server.HtmlEncode(value);
}
}
[Personalizable]
public string Title
{
get
{
object objTitle = ViewState["Title"];
if (objTitle == null)
return String.Empty;
return (string)objTitle;
}
set
{
ViewState["Title"] = Server.HtmlEncode(value);
}
}
public string Subtitle
{
get
{
object objSubTitle = ViewState["Subtitle"];
if (objSubTitle == null)
return "Acme Corp";
return (string)objSubTitle;
}
}
[Personalizable]
public string TitleIconImageUrl
{
get
{
object objTitle = ViewState["TitleIconImageUrl"];
if (objTitle == null)
return String.Empty;
return (string)objTitle;
}
set
{
ViewState["TitleIconImageUrl"] = Server.HtmlEncode(value);
}
}
[Personalizable]
public string TitleUrl
{
get
{
object objTitle = ViewState["TitleUrl"];
if (objTitle == null)
return String.Empty;
return (string)objTitle;
}
set
{
ViewState["TitleUrl"] = Server.HtmlEncode(value);
}
}
[Personalizable]
public string CatalogIconImageUrl
{
get
{
object objTitle = ViewState["CatalogIconImageUrl"];
if (objTitle == null)
return String.Empty;
return (string)objTitle;
}
set
{
ViewState["CatalogIconImageUrl"] = Server.HtmlEncode(value);
}
}
</script>
<asp:calendar id="Calendar1" runat="server" />
<!-- A page that registers and hosts the user control. -->
<%@ Page language="C#" %>
<%@ register tagprefix="uc1"
tagname="CalControl"
src="~/CalendarUserControl.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Calendar Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="manager1" runat="server" />
<asp:webpartzone id="WebPartZone1" runat="server">
<zonetemplate>
<uc1:CalControl id="CalControl1" runat="server"
title="Personal Calendar"
description="My personal calendar for work." />
</zonetemplate>
</asp:webpartzone>
</form>
</body>
</html>
<!-- A user control that implements an interface. -->
<%@ Control language="VB" ClassName="CalendarUserControl" %>
<%@ implements
interface="System.Web.UI.WebControls.WebParts.IWebPart" %>
<script runat="server">
Private m_Description As String
Private m_Title As String
Private m_TitleIconImageUrl As String
Private m_TitleUrl As String
Private m_CatalogIconImageUrl As String
<Personalizable()> _
Public Property Description() As String _
Implements IWebPart.Description
Get
Dim objTitle As Object = ViewState("Description")
If objTitle Is Nothing Then
Return String.Empty
End If
Return CStr(objTitle)
End Get
Set(ByVal value As String)
ViewState("Description") = Server.HtmlEncode(value)
End Set
End Property
<Personalizable()> _
Public Property Title() As String _
Implements IWebPart.Title
Get
Dim objTitle As Object = ViewState("Title")
If objTitle Is Nothing Then
Return String.Empty
End If
Return CStr(objTitle)
End Get
Set(ByVal value As String)
ViewState("Title") = Server.HtmlEncode(value)
End Set
End Property
ReadOnly Property Subtitle() As String _
Implements IWebPart.Subtitle
Get
Dim objSubTitle As Object = ViewState("Subtitle")
If objSubTitle Is Nothing Then
Return "Acme Corp"
End If
Return CStr(objSubTitle)
End Get
End Property
<Personalizable()> _
Public Property TitleIconImageUrl() As String _
Implements IWebPart.TitleIconImageUrl
Get
Dim objTitle As Object = ViewState("TitleIconImageUrl")
If objTitle Is Nothing Then
Return String.Empty
End If
Return CStr(objTitle)
End Get
Set(ByVal value As String)
ViewState("TitleIconImageUrl") = Server.HtmlEncode(value)
End Set
End Property
<Personalizable()> _
Public Property TitleUrl() As String _
Implements IWebPart.TitleUrl
Get
Dim objTitle As Object = ViewState("TitleUrl")
If objTitle Is Nothing Then
Return String.Empty
End If
Return CStr(objTitle)
End Get
Set(ByVal value As String)
ViewState("TitleUrl") = Server.HtmlEncode(value)
End Set
End Property
<Personalizable()> _
Public Property CatalogIconImageUrl() As String _
Implements IWebPart.CatalogIconImageUrl
Get
Dim objTitle As Object = ViewState("CatalogIconImageUrl")
If objTitle Is Nothing Then
Return String.Empty
End If
Return CStr(objTitle)
End Get
Set(ByVal value As String)
ViewState("CatalogIconImageUrl") = Server.HtmlEncode(value)
End Set
End Property
</script>
<asp:calendar id="Calendar1" runat="server" />
<!-- A page that registers and hosts the user control. -->
<%@ Page language="VB" %>
<%@ register tagprefix="uc1"
tagname="CalControl"
src="~/CalendarUserControl.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Calendar Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="manager1" runat="server" />
<asp:webpartzone id="WebPartZone1" runat="server">
<zonetemplate>
<uc1:CalControl id="CalControl1" runat="server"
title="Personal Calendar"
description="My personal calendar for work." />
</zonetemplate>
</asp:webpartzone>
</form>
</body>
</html>
См. также
Задачи
Практическое руководство. Включение пользовательского элемента управления в веб-страницу ASP.NET
Основные понятия
Общие сведения о синтаксисе веб-страниц ASP.NET
Модель кода веб-страниц ASP.NET