FormViewDesigner 类

定义

在可视化设计器中为 FormView 控件提供设计时支持。

public ref class FormViewDesigner : System::Web::UI::Design::WebControls::DataBoundControlDesigner
public class FormViewDesigner : System.Web.UI.Design.WebControls.DataBoundControlDesigner
type FormViewDesigner = class
    inherit DataBoundControlDesigner
Public Class FormViewDesigner
Inherits DataBoundControlDesigner
继承

示例

下面的代码示例演示如何扩展 FormViewDesigner 类,以更改在设计时派生自 控件的 FormView 控件的外观。

该示例从 控件派生 MyFormView 控件 FormView 。 只是 MyFormViewFormView一个副本。 该示例还从 派生 MyFormViewDesigner 类,FormViewDesigner并在 控件上MyFormView放置 一MyFormViewDesignerDesignerAttribute 对象。

MyFormViewDesigner 替代以下项:

  • 用于 SampleRowCount 指定 设计时视图的 MyFormView 页码行包含四个页面链接的属性。

  • GetDesignTimeHtml 设计时将 属性作为新第一行包含在 Caption 网格中的 MyFormView 方法(如果已指定)。 BorderStyle如果 的 MyFormView 属性为 NotSetNone 值,则会GetDesignTimeHtml在控件周围绘制蓝色虚线边框,使其范围更可见。

using System;
using System.Web;
using System.Drawing;
using System.Web.UI.WebControls;
using System.Web.UI.Design.WebControls;
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;

namespace Examples.CS.WebControls.Design
{
    // The MyFormView is a copy of the FormView.
    [AspNetHostingPermission(SecurityAction.Demand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [Designer(typeof(Examples.CS.WebControls.Design.MyFormViewDesigner))]
    public class MyFormView : FormView
    {
    } // MyFormView

    // Override members of the FormViewDesigner.
    public class MyFormViewDesigner : FormViewDesigner
    {
        // Determines the number of design-time links in the pager row.
        protected override int SampleRowCount
        {
            get
            {
                // Render four links in the pager row.
                return 4;
            }
        } // SampleRowCount

        // Generate the design-time markup.
        const string capTag = "caption";
        const string trOpen = "tr><td colspan=9 align=center";
        const string trClose = "td></tr";

        public override string GetDesignTimeHtml()
        {
            // Make the full extent of the control more visible in the designer.
            // If the border style is None or NotSet, change the border to
            // a wide, blue, dashed line. Include the caption within the border.
            MyFormView myGV = (MyFormView)Component;
            string markup = null;
            int charX;

            // Check if the border style should be changed.
            if (myGV.BorderStyle == BorderStyle.NotSet ||
                myGV.BorderStyle == BorderStyle.None)
            {
                BorderStyle oldBorderStyle = myGV.BorderStyle;
                Unit oldBorderWidth = myGV.BorderWidth;
                Color oldBorderColor = myGV.BorderColor;

                // Set the design-time properties and catch any exceptions.
                try
                {
                    myGV.BorderStyle = BorderStyle.Dashed;
                    myGV.BorderWidth = Unit.Pixel(3);
                    myGV.BorderColor = Color.Blue;

                    // Call the base method to generate the markup.
                    markup = base.GetDesignTimeHtml();
                }
                catch (Exception ex)
                {
                    markup = GetErrorDesignTimeHtml(ex);
                }
                finally
                {
                    // Restore the properties to their original settings.
                    myGV.BorderStyle = oldBorderStyle;
                    myGV.BorderWidth = oldBorderWidth;
                    myGV.BorderColor = oldBorderColor;
                }
            }
            else
            {
                // Call the base method to generate the markup.
                markup = base.GetDesignTimeHtml();
            }

            // Look for a <caption> tag.
            if ((charX = markup.IndexOf(capTag)) > 0)
            {
                // Replace the first caption with 
                // "tr><td colspan=9 align=center".
                // It is okay if the colspan exceeds the 
                // number of columns in the table.
                markup = markup.Remove(charX,
                    capTag.Length).Insert(charX, trOpen);

                // Replace the second caption with "td></tr".
                if ((charX = markup.IndexOf(capTag, charX)) > 0)
                    markup = markup.Remove(charX,
                        capTag.Length).Insert(charX, trClose);
            }
            return markup;
        } // GetDesignTimeHtml
    } // MyFormViewDesigner
} // Examples.CS.WebControls.Design
Imports System.Web
Imports System.Drawing
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design.WebControls
Imports System.Collections
Imports System.ComponentModel
Imports System.Security.Permissions

Namespace Examples.VB.WebControls.Design

    ' The MyFormView is a copy of the FormView.
    <AspNetHostingPermission(SecurityAction.Demand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <Designer(GetType(Examples.VB.WebControls.Design.MyFormViewDesigner))> _
    Public Class MyFormView
        Inherits FormView
    End Class

    ' Override members of the FormViewDesigner.
    Public Class MyFormViewDesigner
        Inherits FormViewDesigner

        ' Determines the number of design-time links in the pager row.
        Protected Overrides ReadOnly Property SampleRowCount() As Integer
            Get
                ' Render four links in the pager row.
                Return 4
            End Get
        End Property ' SampleRowCount

        ' Generate the design-time markup.
        Private Const capTag As String = "caption"
        Private Const trOpen As String = "tr><td colspan=9 align=center"
        Private Const trClose As String = "td></tr"

        Public Overrides Function GetDesignTimeHtml() As String

            ' Make the full extent of the control more visible in the designer.
            ' If the border style is None or NotSet, change the border to
            ' a wide, blue, dashed line. Include the caption within the border.
            Dim myGV As MyFormView = CType(Component, MyFormView)
            Dim markup As String = Nothing
            Dim charX As Integer

            ' Check if the border style should be changed.
            If (myGV.BorderStyle = BorderStyle.NotSet Or _
                myGV.BorderStyle = BorderStyle.None) Then

                Dim oldBorderStyle As BorderStyle = myGV.BorderStyle
                Dim oldBorderWidth As Unit = myGV.BorderWidth
                Dim oldBorderColor As Color = myGV.BorderColor

                ' Set the design-time properties and catch any exceptions.
                Try
                    myGV.BorderStyle = BorderStyle.Dashed
                    myGV.BorderWidth = Unit.Pixel(3)
                    myGV.BorderColor = Color.Blue

                    ' Call the base method to generate the markup.
                    markup = MyBase.GetDesignTimeHtml()

                Catch ex As Exception
                    markup = GetErrorDesignTimeHtml(ex)

                Finally
                    ' Restore the properties to their original settings.
                    myGV.BorderStyle = oldBorderStyle
                    myGV.BorderWidth = oldBorderWidth
                    myGV.BorderColor = oldBorderColor
                End Try

            Else
                ' Call the base method to generate the markup.
                markup = MyBase.GetDesignTimeHtml()
            End If

            ' Look for a <caption> tag.
            charX = markup.IndexOf(capTag)
            If charX > 0 Then

                ' Replace the first caption with 
                ' "tr><td colspan=9 align=center".
                ' It is okay if the colspan exceeds the 
                ' number of columns in the table.
                markup = markup.Remove(charX, _
                    capTag.Length).Insert(charX, trOpen)

                ' Replace the second caption with "td></tr".
                charX = markup.IndexOf(capTag, charX)
                If charX > 0 Then
                    markup = markup.Remove(charX, _
                        capTag.Length).Insert(charX, trClose)
                End If
            End If

            Return markup

        End Function ' GetDesignTimeHtml
    End Class
End Namespace ' Examples.VB.WebControls.Design

注解

在可视化设计器中,从“源”视图切换到“设计”视图时,将分析描述控件的 FormView 标记源代码,并在设计图面上创建控件的设计时版本。 切换回“源”视图时,设计时控件将保存到标记源代码中,并编辑为网页的标记。

类的属性 FormViewDesigner 提供以下功能:

FormViewDesigner 方法提供以下功能:

构造函数

FormViewDesigner()

初始化 FormViewDesigner 类的新实例。

属性

ActionLists

获取此设计器的设计器操作列表集合。

AllowResize

获取一个值,该值指示是否可以在设计时环境中调整控件的大小。

(继承自 ControlDesigner)
AssociatedComponents

获取与设计器所管理的组件关联的组件集合。

(继承自 ComponentDesigner)
AutoFormats

获取自动格式设置方案的集合,以便在“自动套用格式”对话框中显示

Behavior
已过时.

获取或设置与设计器关联的 DHTML 行为。

(继承自 HtmlControlDesigner)
Component

获取此设计器正在设计的组件。

(继承自 ComponentDesigner)
DataBindings

获取当前控件的数据绑定集合。

(继承自 HtmlControlDesigner)
DataBindingsEnabled

获取一个值,该值指示包含关联控件的区域是否支持数据绑定。

(继承自 ControlDesigner)
DataMember

获取基础数据绑定控件的隐藏 DataMember 属性。

(继承自 DataBoundControlDesigner)
DataSource

获取或设置关联控件的 DataSource 属性值。

(继承自 BaseDataBoundControlDesigner)
DataSourceDesigner

获取基础数据绑定控件的数据源的设计器。

(继承自 DataBoundControlDesigner)
DataSourceID

获取或设置基础 DataSourceID 对象的 BaseDataBoundControl 属性值。

(继承自 BaseDataBoundControlDesigner)
DesignerState

获取用于在设计时保持关联控件数据的对象。

(继承自 ControlDesigner)
DesignerView

获取与此设计器的数据源相关联的 DesignerDataSourceView 对象。

(继承自 DataBoundControlDesigner)
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)
RenderOuterTable

指定 FormViewDesigner 控件是否使用外部表容器来应用内联 CSS 样式规则。

RootDesigner

获取包含关联控件的 Web 窗体页的控件设计器。

(继承自 ControlDesigner)
SampleRowCount

获取要显示的关联控件的示例行数。

SetTextualDefaultProperty

在可视化设计器中为 FormView 控件提供设计时支持。

(继承自 ComponentDesigner)
ShadowProperties

获取重写用户设置的属性值的集合。

(继承自 ComponentDesigner)
ShouldCodeSerialize
已过时.

获取或设置一个值,该值指示在序列化期间是否应为当前设计文档在代码隐藏文件中创建控件的字段声明。

(继承自 HtmlControlDesigner)
Tag

获取表示关联控件的 HTML 标记元素的对象。

(继承自 ControlDesigner)
TemplateGroups

获取用于关联控件字段的模板组集合。

UseDataSourcePickerActionList

获取一个值,该值指示设计器是否在其操作列表中包括“选择一个数据源”。

(继承自 DataBoundControlDesigner)
UsePreviewControl

获取一个值,指示设计器是否应使用临时副本取代与设计器关联的实际控件来生成设计时标记。

Verbs

获取与设计器相关联的组件所支持的设计时谓词。

(继承自 ComponentDesigner)
ViewControl

获取或设置可用于预览设计时 HTML 标记的 Web 服务器控件。

(继承自 ControlDesigner)
ViewControlCreated

获取或设置一个值,该值指示是否已创建 View 控件以在设计图面上显示。

(继承自 ControlDesigner)
Visible

获取指示该控件在设计时是否可见的值。

(继承自 ControlDesigner)

方法

ConnectToDataSource()

将事件与之前的数据源断开连接,并将其连接到当前数据源。

(继承自 DataBoundControlDesigner)
CreateDataSource()

调用标准对话框以创建一个新的数据源控件,将新数据源控件的 ID 设置为数据绑定控件的 DataSourceID 属性。

(继承自 DataBoundControlDesigner)
CreateErrorDesignTimeHtml(String)

创建在设计时显示指定错误消息的 HTML 标记。

(继承自 ControlDesigner)
CreateErrorDesignTimeHtml(String, Exception)

创建在设计时显示指定异常错误消息的 HTML 标记。

(继承自 ControlDesigner)
CreatePlaceHolderDesignTimeHtml()

提供一个简单的矩形占位符表示形式,该表示形式显示该控件的类型和 ID。

(继承自 ControlDesigner)
CreatePlaceHolderDesignTimeHtml(String)

提供一个简单的矩形占位符表示形式,该表示形式显示该控件的类型和 ID 以及指定的附加说明或信息。

(继承自 ControlDesigner)
CreateViewControl()

返回要在设计图面上查看或呈现的关联控件的副本。

(继承自 ControlDesigner)
DataBind(BaseDataBoundControl)

DataBoundControl 对象绑定到数据源。

(继承自 DataBoundControlDesigner)
DisconnectFromDataSource()

将数据绑定控件与数据源事件断开连接。

(继承自 DataBoundControlDesigner)
Dispose()

释放由 ComponentDesigner 使用的所有资源。

(继承自 ComponentDesigner)
Dispose(Boolean)

释放由 DataBoundControlDesigner 对象占用的非托管资源并(可选)释放托管资源。

(继承自 DataBoundControlDesigner)
DoDefaultAction()

在源代码文件中为组件的默认事件创建方法签名,并将用户的光标定位到该位置。

(继承自 ComponentDesigner)
Equals(Object)

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

(继承自 Object)
GetBounds()

检索矩形的坐标,该矩形表示设计图面上显示的控件的边界。

(继承自 ControlDesigner)
GetDesignTimeDataSource()

从关联的 DataSourceDesignerDataSource 属性中获取设计时数据源。

(继承自 DataBoundControlDesigner)
GetDesignTimeHtml()

获取用于在设计时呈现关联控件的标记。

GetDesignTimeHtml(DesignerRegionCollection)

检索用当前控件设计器区域显示控件并填充集合的 HTML 标记。

(继承自 ControlDesigner)
GetEditableDesignerRegionContent(EditableDesignerRegion)

返回关联控件设计时视图中可编辑区域的内容。

(继承自 ControlDesigner)
GetEmptyDesignTimeHtml()

获取用于在设计时呈现关联控件占位符的标记文本。

GetErrorDesignTimeHtml(Exception)

提供发生错误时用于在设计时呈现控件的标记。

(继承自 BaseDataBoundControlDesigner)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetPersistenceContent()

在设计时检索该控件的持久内部 HTML 标记。

(继承自 ControlDesigner)
GetPersistInnerHtml()
已过时.

检索控件的持久性内部 HTML 标记。

(继承自 ControlDesigner)
GetSampleDataSource()

如果无法通过DataSourceDesignerDataSource 属性创建示例数据,则获取虚拟示例数据,以便在设计图面上呈现数据绑定控件。

(继承自 DataBoundControlDesigner)
GetService(Type)

尝试从设计器组件的设计模式站点检索指定类型的服务。

(继承自 ComponentDesigner)
GetType()

获取当前实例的 Type

(继承自 Object)
GetViewRendering()

检索一个对象,该对象包含关联控件的内容和区域的设计时标记。

(继承自 ControlDesigner)
Initialize(IComponent)

准备设计器,以查看、编辑和设计关联的组件。

InitializeExistingComponent(IDictionary)

重新初始化现有组件。

(继承自 ComponentDesigner)
InitializeNewComponent(IDictionary)

初始化新创建的组件。

(继承自 ComponentDesigner)
InitializeNonDefault()
已过时.
已过时.

对已初始化为非默认设置的导入组件的设置进行初始化。

(继承自 ComponentDesigner)
Invalidate()

使显示在设计图面上的控件的整个区域无效,并向控件设计器发送重新绘制控件的信号。

(继承自 ControlDesigner)
Invalidate(Rectangle)

使显示在设计图面上的控件的指定区域无效,并向控件设计器发送重新绘制控件的信号。

(继承自 ControlDesigner)
InvokeGetInheritanceAttribute(ComponentDesigner)

获取指定 InheritanceAttributeComponentDesigner

(继承自 ComponentDesigner)
IsPropertyBound(String)
已过时.

检索一个值,该值指示关联控件上的指定属性是否是数据绑定的。

(继承自 ControlDesigner)
Localize(IDesignTimeResourceWriter)

使用提供的资源编写器将关联控件的可本地化属性保持到设计宿主中的某个资源。

(继承自 ControlDesigner)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnAutoFormatApplied(DesignerAutoFormat)

对关联控件应用预定义的自动格式设置方案后调用。

(继承自 ControlDesigner)
OnBehaviorAttached()

将控件设计器附加到 Behavior 对象时调用。

(继承自 ControlDesigner)
OnBehaviorDetaching()
已过时.

当某个行为与该元素取消关联时被调用。

(继承自 HtmlControlDesigner)
OnBindingsCollectionChanged(String)
已过时.

在数据绑定集合发生更改时调用。

(继承自 ControlDesigner)
OnClick(DesignerRegionMouseEventArgs)

当用户在设计时单击关联控件时由设计宿主调用。

(继承自 ControlDesigner)
OnComponentChanged(Object, ComponentChangedEventArgs)

在关联控件发生更改时调用。

(继承自 ControlDesigner)
OnComponentChanging(Object, ComponentChangingEventArgs)

表示将处理关联控件的 ComponentChanging 事件的方法。

(继承自 ControlDesigner)
OnControlResize()
已过时.

关联的 Web 服务器控件的大小在设计宿主中发生设计时调整后被调用。

(继承自 ControlDesigner)
OnDataSourceChanged(Boolean)

关联 BaseDataBoundControl 对象的数据源发生更改时被调用。

(继承自 BaseDataBoundControlDesigner)
OnPaint(PaintEventArgs)

当控件设计器在设计图面上绘制关联控件,且 CustomPaint 的值为 true 时调用。

(继承自 ControlDesigner)
OnSchemaRefreshed()

当关联控件的数据源架构更改时,将调用它。

OnSetComponentDefaults()
已过时.
已过时.

设置组件的默认属性。

(继承自 ComponentDesigner)
OnSetParent()

提供一种在将关联控件附加到父控件时执行附加处理的方式。

(继承自 HtmlControlDesigner)
PostFilterAttributes(IDictionary)

允许设计器从通过 TypeDescriptor 公开的特性集中更改或移除项。

(继承自 ComponentDesigner)
PostFilterEvents(IDictionary)

允许设计器从通过 TypeDescriptor 公开的事件集中更改或移除项。

(继承自 ComponentDesigner)
PostFilterProperties(IDictionary)

允许设计器从通过 TypeDescriptor 公开的属性集中更改或移除项。

(继承自 ComponentDesigner)
PreFilterAttributes(IDictionary)

允许设计器在通过 TypeDescriptor 公开的特性集中添加项。

(继承自 ComponentDesigner)
PreFilterEvents(IDictionary)

设置在设计时为用于组件的 TypeDescriptor 对象公开的事件列表。

(继承自 HtmlControlDesigner)
PreFilterProperties(IDictionary)

设计时在设计宿主的属性网格中添加或移除属性,或提供可能与关联控件上的属性相对应的新设计时属性。

PreFilterProperties(IDictionary)

由设计器重写,以便用设计器实现的属性隐藏数据绑定控件的对应运行时属性。

(继承自 DataBoundControlDesigner)
RaiseComponentChanged(MemberDescriptor, Object, Object)

通知 IComponentChangeService 此组件已被更改。

(继承自 ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

通知 IComponentChangeService 此组件即将被更改。

(继承自 ComponentDesigner)
RaiseResizeEvent()
已过时.

引发 OnControlResize() 事件。

(继承自 ControlDesigner)
RegisterClone(Object, Object)

注册克隆控件中的内部数据。

(继承自 ControlDesigner)
SetEditableDesignerRegionContent(EditableDesignerRegion, String)

指定设计时控件可编辑区域的内容。

(继承自 ControlDesigner)
SetRegionContent(EditableDesignerRegion, String)

指定控件设计时视图中可编辑区域的内容。

(继承自 ControlDesigner)
SetViewFlags(ViewFlags, Boolean)

将指定的按位 ViewFlags 枚举分配给指定的标志值。

(继承自 ControlDesigner)
ToString()

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

(继承自 Object)
UpdateDesignTimeHtml()

通过调用 GetDesignTimeHtml 方法刷新关联 Web 服务器控件的设计时 HTML 标记。

(继承自 ControlDesigner)

显式接口实现

IDataBindingSchemaProvider.CanRefreshSchema

有关此成员的说明,请参见 CanRefreshSchema

(继承自 DataBoundControlDesigner)
IDataBindingSchemaProvider.RefreshSchema(Boolean)

有关此成员的说明,请参见 RefreshSchema(Boolean)

(继承自 DataBoundControlDesigner)
IDataBindingSchemaProvider.Schema

有关此成员的说明,请参见 Schema

(继承自 DataBoundControlDesigner)
IDataSourceProvider.GetResolvedSelectedDataSource()

有关此成员的说明,请参见 GetResolvedSelectedDataSource()

(继承自 DataBoundControlDesigner)
IDataSourceProvider.GetSelectedDataSource()

有关此成员的说明,请参见 GetSelectedDataSource()

(继承自 DataBoundControlDesigner)
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)

适用于

另请参阅