LoginViewDesigner 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在可视化设计器中为 LoginView Web 服务器控件提供设计时支持。
public ref class LoginViewDesigner : System::Web::UI::Design::ControlDesigner
public class LoginViewDesigner : System.Web.UI.Design.ControlDesigner
type LoginViewDesigner = class
inherit ControlDesigner
Public Class LoginViewDesigner
Inherits ControlDesigner
- 继承
示例
下面的代码示例演示如何扩展 LoginViewDesigner 类,以在设计时更改派生自 LoginView 控件的控件的外观和行为。
该示例从 LoginView派生MyLoginView
控件。
MyLoginView
是 控件的副本LoginView。 该示例还从 类派生MyLoginViewDesigner
类,LoginViewDesigner并为 控件上的 MyLoginView
应用 DesignerAttribute 属性MyLoginViewDesigner
。
控件 MyLoginViewDesigner
替代以下 LoginViewDesigner 成员:
在 PreFilterProperties 设计时使 NamingContainer 属性在 “属性” 网格中可见的方法。
在 GetDesignTimeHtml 控件周围绘制橙色边框以使其范围更可见的方法。
为 GetErrorDesignTimeHtml 包含错误消息的占位符生成标记的方法,该占位符以红色粗体文本呈现。
为 GetEmptyDesignTimeHtml 占位符生成标记的方法,该占位符包含为控件定义的角色组的名称。
Initialize如果关联的控件不是
MyLoginView
对象,则引发ArgumentException异常的方法。
using System;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;
namespace Examples.CS.WebControls.Design
{
// The MyLoginView is a copy of the LoginView.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
[Designer(typeof(Examples.CS.WebControls.Design.MyLoginViewDesigner))]
public class MyLoginView : LoginView
{
} // MyLoginView
// Override members of the LoginViewDesigner.
[ReflectionPermission(SecurityAction.Demand, Flags=ReflectionPermissionFlag.MemberAccess)]
public class MyLoginViewDesigner : LoginViewDesigner
{
// Generate the design-time markup for the control when an error occurs.
protected override string GetErrorDesignTimeHtml(Exception ex)
{
// Write the error message text in red, bold.
string errorRendering =
"<span style=\"font-weight:bold; color:Red; \">" +
ex.Message + "</span>";
return CreatePlaceHolderDesignTimeHtml(errorRendering);
} // GetErrorDesignTimeHtml
// Generate the design-time markup for the control
// when the template is empty.
protected override string GetEmptyDesignTimeHtml()
{
// Generate a design-time placeholder containing the names of all
// the role groups.
MyLoginView myLoginViewCtl = (MyLoginView)ViewControl;
RoleGroupCollection roleGroups = myLoginViewCtl.RoleGroups;
string roleNames = null;
// If there are any role groups, form a string of their names.
if (roleGroups.Count > 0)
{
roleNames = "Role Groups: <br /> " +
roleGroups[0].ToString();
for( int rgX = 1; rgX < roleGroups.Count; rgX++ )
roleNames +=
"<br /> " + roleGroups[rgX].ToString();
}
return CreatePlaceHolderDesignTimeHtml( roleNames);
} // GetEmptyDesignTimeHtml
// Shadow control properties with design-time properties.
protected override void PreFilterProperties(IDictionary properties)
{
// Call the base method first.
base.PreFilterProperties(properties);
// Make the NamingContainer visible in the Properties grid.
PropertyDescriptor selectProp =
(PropertyDescriptor)properties["NamingContainer"];
properties["NamingContainer"] =
TypeDescriptor.CreateProperty(selectProp.ComponentType,
selectProp, BrowsableAttribute.Yes);
} // PreFilterProperties
// Generate the design-time markup.
public override string GetDesignTimeHtml(DesignerRegionCollection regions)
{
// Make the control more visible in the designer.
// Enclose the markup in a table with an orange border.
const string openTableMarkup =
"<table><tr><td style=\"border:4 solid #FF7F00;\">";
const string closeTableMarkup = "</td></tr></table>";
// Call the base method to generate the markup.
string markup = base.GetDesignTimeHtml(regions);
return openTableMarkup + markup + closeTableMarkup;
} // GetDesignTimeHtml
public override void Initialize(IComponent component)
{
// Ensure that only a MyLoginView can be created in this designer.
if (!(component is MyLoginView))
throw new ArgumentException();
// Call the base method to generate the markup.
base.Initialize(component);
} // Initialize
} // MyLoginViewDesigner
} // Examples.CS.WebControls.Design
Imports System.Web
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Collections
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.IO
Namespace Examples.VB.WebControls.Design
' The MyLoginView is a copy of the LoginView.
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<Designer(GetType(Examples.VB.WebControls.Design.MyLoginViewDesigner))> _
Public Class MyLoginView
Inherits LoginView
End Class
' Override members of the LoginViewDesigner.
<ReflectionPermission(SecurityAction.Demand, Flags:=ReflectionPermissionFlag.MemberAccess)> _
Public Class MyLoginViewDesigner
Inherits LoginViewDesigner
' Generate the design-time markup for the control when an error occurs.
Protected Overrides Function GetErrorDesignTimeHtml( _
ByVal ex As Exception) As String
' Write the error message text in red, bold.
Dim errorRendering As String = _
"<span style=""font-weight:bold; color:Red; "">" & _
ex.Message & "</span>"
Return CreatePlaceHolderDesignTimeHtml(errorRendering)
End Function ' GetErrorDesignTimeHtml
' Generate the design-time markup for the control
' when the template is empty.
Protected Overrides Function GetEmptyDesignTimeHtml() As String
' Generate a design-time placeholder containing the names of all
' the role groups.
Dim myLoginViewCtl As MyLoginView = CType(ViewControl, MyLoginView)
Dim roleGroups As RoleGroupCollection = myLoginViewCtl.RoleGroups
Dim RoleNames As String = Nothing
Dim rgX As Integer
' If there are any role groups, form a string of their names.
If roleGroups.Count > 0 Then
roleNames = "Role Groups: <br /> " & _
roleGroups(0).ToString()
For rgX = 1 To roleGroups.Count - 1
roleNames &= "<br /> " & _
roleGroups(rgX).ToString()
Next rgX
End If
Return CreatePlaceHolderDesignTimeHtml(roleNames)
End Function ' GetEmptyDesignTimeHtml
' Shadow control properties with design-time properties.
Protected Overrides Sub PreFilterProperties( _
ByVal properties As IDictionary)
' Call the base method first.
MyBase.PreFilterProperties(properties)
' Make the NamingContainer visible in the Properties grid.
Dim selectProp As PropertyDescriptor = _
CType(properties("NamingContainer"), PropertyDescriptor)
properties("NamingContainer") = _
TypeDescriptor.CreateProperty(selectProp.ComponentType, _
selectProp, BrowsableAttribute.Yes)
End Sub
' Generate the design-time markup.
Public Overrides Function GetDesignTimeHtml( _
ByVal regions As DesignerRegionCollection) As String
' Make the control more visible in the designer.
' Enclose the markup in a table with an orange border.
Dim openTableMarkup As String = _
"<table><tr><td style=""border:4 solid #FF7F00;"">"
Dim closeTableMarkup As String = "</td></tr></table>"
' Call the base method to generate the markup.
Dim markup As String = MyBase.GetDesignTimeHtml(regions)
Return openTableMarkup & markup & closeTableMarkup
End Function ' GetDesignTimeHtml
' Generate the design time markup.
Public Overrides Sub Initialize(ByVal component As IComponent)
' Ensure that only a MyLoginView can be created in this designer.
If Not TypeOf component Is MyLoginView Then
Throw New ArgumentException()
End If
' Call the base method to generate the markup.
MyBase.Initialize(component)
End Sub
End Class
End Namespace ' Examples.VB.WebControls.Design
注解
控件 LoginView 呈现其模板之一,由用户是否登录到主机网站以及包含登录用户帐户的角色决定。
在可视化设计器中,从“源”视图切换到“设计”视图时,将分析描述控件的 LoginView 标记源代码,并在设计图面上创建控件的设计时版本。 切换回源视图时,设计时控件将保留到标记源代码中,并编辑到网页的标记中。 类 LoginViewDesigner 为 控件提供设计时支持 LoginView 。
属性 ActionLists 返回 一个 DesignerActionListCollection 对象,该对象通常包含从 DesignerActionList 设计器继承树中每个级别的 类派生的对象。 属性 TemplateGroups 返回关联 LoginView 控件的模板的模板组的集合。 属性 UsePreviewControl 始终返回 true
,指示设计器创建关联 LoginView 控件的临时副本以生成设计时标记。
类 LoginViewDesigner 方法提供以下功能:
方法 GetDesignTimeHtml 返回用于在设计时呈现关联 LoginView 控件的标记。 方法 GetEmptyDesignTimeHtml 获取标记,该标记在设计时未定义当前模板时呈现关联控件的占位符。 方法 GetErrorDesignTimeHtml 提供标记,该标记在发生错误时在设计时呈现关联的控件。
方法 GetEditableDesignerRegionContent 返回关联 LoginView 控件的当前模板的序列化副本。 方法 SetEditableDesignerRegionContent 从控件模板的序列化副本设置关联控件的区域。
方法 Initialize 使设计器准备好查看、编辑和设计关联的 LoginView 控件。 OnComponentChanged当关联控件发生更改时,将调用 方法。 方法 PreFilterProperties 用于从中删除属性、向添加其他属性或隐藏关联控件的属性。
构造函数
LoginViewDesigner() |
初始化 LoginViewDesigner 类的新实例。 |
属性
ActionLists |
获取此设计器的设计器操作列表集合。 |
AllowResize |
获取一个值,该值指示是否可以在设计时环境中调整控件的大小。 (继承自 ControlDesigner) |
AssociatedComponents |
获取与设计器所管理的组件关联的组件集合。 (继承自 ComponentDesigner) |
AutoFormats |
获取预定义自动格式设置方案的集合,这些方案将在设计时显示于关联控件的“自动套用格式”对话框中。 (继承自 ControlDesigner) |
Behavior |
已过时.
获取或设置与设计器关联的 DHTML 行为。 (继承自 HtmlControlDesigner) |
Component |
获取此设计器正在设计的组件。 (继承自 ComponentDesigner) |
DataBindings |
获取当前控件的数据绑定集合。 (继承自 HtmlControlDesigner) |
DataBindingsEnabled |
获取一个值,该值指示包含关联控件的区域是否支持数据绑定。 (继承自 ControlDesigner) |
DesignerState |
获取用于在设计时保持关联控件数据的对象。 (继承自 ControlDesigner) |
DesignTimeElement |
已过时.
获取一个设计时对象,该对象表示与设计图面上的 HtmlControlDesigner 对象关联的控件。 (继承自 HtmlControlDesigner) |
DesignTimeElementView |
已过时.
获取控件设计器的视图控件对象。 (继承自 ControlDesigner) |
DesignTimeHtmlRequiresLoadComplete |
已过时.
获取一个值,该值指示是否必须在设计宿主完成加载之后才能调用 GetDesignTimeHtml 方法。 (继承自 ControlDesigner) |
Expressions |
获取当前控件在设计时的表达式绑定。 (继承自 HtmlControlDesigner) |
HidePropertiesInTemplateMode |
获取一个值,该值指示当控件处于模板模式时,关联控件的属性是否被隐藏。 (继承自 ControlDesigner) |
ID |
获取或设置控件的 ID 字符串。 (继承自 ControlDesigner) |
InheritanceAttribute |
获取一个特性,该特性指示关联组件的继承类型。 (继承自 ComponentDesigner) |
Inherited |
获取一个值,该值指示是否继承此组件。 (继承自 ComponentDesigner) |
InTemplateMode |
获取一个值,该值指示控件在设计宿主中是否处于模板查看模式或模板编辑模式之一。 InTemplateMode 属性为只读。 (继承自 ControlDesigner) |
IsDirty |
已过时.
获取或设置一个值,该值指示 Web 服务器控件是否已被标记为已更改。 (继承自 ControlDesigner) |
ParentComponent |
获取此设计器的父组件。 (继承自 ComponentDesigner) |
ReadOnly |
已过时.
获取或设置一个值,该值指示控件的属性在设计时是否为只读。 (继承自 ControlDesigner) |
RootDesigner |
获取包含关联控件的 Web 窗体页的控件设计器。 (继承自 ControlDesigner) |
SetTextualDefaultProperty |
在可视化设计器中为 LoginView Web 服务器控件提供设计时支持。 (继承自 ComponentDesigner) |
ShadowProperties |
获取重写用户设置的属性值的集合。 (继承自 ComponentDesigner) |
ShouldCodeSerialize |
已过时.
获取或设置一个值,该值指示在序列化期间是否应为当前设计文档在代码隐藏文件中创建控件的字段声明。 (继承自 HtmlControlDesigner) |
Tag |
获取表示关联控件的 HTML 标记元素的对象。 (继承自 ControlDesigner) |
TemplateGroups |
获取用于关联控件字段的模板组集合。 |
UsePreviewControl |
获取一个值,指示设计器是否应使用临时副本取代与设计器关联的实际控件来生成设计时标记。 |
Verbs |
获取与设计器相关联的组件所支持的设计时谓词。 (继承自 ComponentDesigner) |
ViewControl |
获取或设置可用于预览设计时 HTML 标记的 Web 服务器控件。 (继承自 ControlDesigner) |
ViewControlCreated |
获取或设置一个值,该值指示是否已创建 |
Visible |
获取指示该控件在设计时是否可见的值。 (继承自 ControlDesigner) |
方法
显式接口实现
IDesignerFilter.PostFilterAttributes(IDictionary) |
有关此成员的说明,请参见 PostFilterAttributes(IDictionary) 方法。 (继承自 ComponentDesigner) |
IDesignerFilter.PostFilterEvents(IDictionary) |
有关此成员的说明,请参见 PostFilterEvents(IDictionary) 方法。 (继承自 ComponentDesigner) |
IDesignerFilter.PostFilterProperties(IDictionary) |
有关此成员的说明,请参见 PostFilterProperties(IDictionary) 方法。 (继承自 ComponentDesigner) |
IDesignerFilter.PreFilterAttributes(IDictionary) |
有关此成员的说明,请参见 PreFilterAttributes(IDictionary) 方法。 (继承自 ComponentDesigner) |
IDesignerFilter.PreFilterEvents(IDictionary) |
有关此成员的说明,请参见 PreFilterEvents(IDictionary) 方法。 (继承自 ComponentDesigner) |
IDesignerFilter.PreFilterProperties(IDictionary) |
有关此成员的说明,请参见 PreFilterProperties(IDictionary) 方法。 (继承自 ComponentDesigner) |
ITreeDesigner.Children |
有关此成员的说明,请参见 Children 属性。 (继承自 ComponentDesigner) |
ITreeDesigner.Parent |
有关此成员的说明,请参见 Parent 属性。 (继承自 ComponentDesigner) |