ListControlDesigner 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用作设计器的基类,这些设计器在可视 Web 设计器中为 ListControl 抽象类派生的控件提供设计时支持。
public ref class ListControlDesigner : System::Web::UI::Design::ControlDesigner, System::Web::UI::Design::IDataSourceProvider
public ref class ListControlDesigner : System::Web::UI::Design::WebControls::DataBoundControlDesigner
public class ListControlDesigner : System.Web.UI.Design.ControlDesigner, System.Web.UI.Design.IDataSourceProvider
[System.Web.UI.Design.SupportsPreviewControl(true)]
public class ListControlDesigner : System.Web.UI.Design.WebControls.DataBoundControlDesigner
type ListControlDesigner = class
inherit ControlDesigner
interface IDataSourceProvider
[<System.Web.UI.Design.SupportsPreviewControl(true)>]
type ListControlDesigner = class
inherit DataBoundControlDesigner
Public Class ListControlDesigner
Inherits ControlDesigner
Implements IDataSourceProvider
Public Class ListControlDesigner
Inherits DataBoundControlDesigner
- 继承
- 继承
- 派生
- 属性
- 实现
示例
本部分提供两个代码示例。 第一个示例演示如何派生自定义控件设计器。 第二个演示如何将派生控件与设计器相关联。
下面的代码示例演示如何创建继承自 ListControlDesigner 类的名为 SimpleRadioButtonListDesigner
的类。 类 SimpleRadioButtonListDesigner
重写 GetDesignTimeHtml、 Initialize和 OnDataSourceChanged 方法。 类 SimpleRadioButtonListDesigner
在设计图面上显示控件 SimpleRadioButtonList
。
using System;
using System.ComponentModel;
using System.Drawing;
using System.Diagnostics;
using System.Web.UI.WebControls;
using System.Web.UI.Design.WebControls;
namespace Examples.CS.WebControls.Design
{
// Create the SimpleRadioButtonListDesigner, which provides
// design-time support for a custom list class.
public class SimpleRadioButtonListDesigner : ListControlDesigner
{
SimpleRadioButtonList simpleRadioButtonList;
bool changedDataSource;
// Create the markup to display the control on the design surface.
public override string GetDesignTimeHtml()
{
string designTimeMarkup = null;
// Create variables to access the control
// item collection and back color.
ListItemCollection items = simpleRadioButtonList.Items;
Color oldBackColor = simpleRadioButtonList.BackColor;
// Check the property values and render the markup
// on the design surface accordingly.
try
{
if (oldBackColor == Color.Empty)
simpleRadioButtonList.BackColor = Color.Gainsboro;
if (changedDataSource)
items.Add("Updated to a new data source: " +
DataSource + ".");
// Call the base method to generate the markup.
designTimeMarkup = base.GetDesignTimeHtml();
}
catch (Exception ex)
{
// Catch any exceptions that occur.
designTimeMarkup = GetErrorDesignTimeHtml(ex);
}
finally
{
// Set the properties back to their original state.
simpleRadioButtonList.BackColor = oldBackColor;
items.Clear();
}
return designTimeMarkup;
} // GetDesignTimeHtml
public override void Initialize(IComponent component)
{
// Ensure that only a SimpleRadioButtonList can be
// created in this designer.
Debug.Assert(
component is SimpleRadioButtonList,
"An invalid SimpleRadioButtonList control was initialized.");
simpleRadioButtonList = (SimpleRadioButtonList)component;
base.Initialize(component);
} // Initialize
// If the data source changes, set a boolean variable.
public override void OnDataSourceChanged()
{
changedDataSource = true;
} // OnDataSourceChanged
} // SimpleRadioButtonListDesigner
} // Examples.CS.WebControls.Design
Imports System.ComponentModel
Imports System.Drawing
Imports System.Diagnostics
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design.WebControls
Namespace Examples.VB.WebControls.Design
' Create the SimpleRadioButtonListDesigner, which provides
' design-time support for a custom list class.
Public Class SimpleRadioButtonListDesigner
Inherits ListControlDesigner
Private simpleRadioButtonList As SimpleRadioButtonList
Private changedDataSource As Boolean
' Create the markup to display the control on the design surface.
Public Overrides Function GetDesignTimeHtml() As String
Dim designTimeHtml As String = String.Empty
' Create variables to access the control's
' item collection and back color.
Dim items As ListItemCollection = simpleRadioButtonList.Items
Dim oldBackColor As Color = simpleRadioButtonList.BackColor
' Check the property values and render the markup
' on the design surface accordingly.
Try
If (Color.op_Equality(oldBackColor, Color.Empty)) Then
simpleRadioButtonList.BackColor = Color.Gainsboro
End If
If (changedDataSource) Then
items.Add( _
"Updated to a new data source: " & DataSource & ".")
End If
designTimeHtml = MyBase.GetDesignTimeHtml()
Catch ex As Exception
' Catch any exceptions that occur.
MyBase.GetErrorDesignTimeHtml(ex)
Finally
' Set the properties back to their original state.
simpleRadioButtonList.BackColor = oldBackColor
items.Clear()
End Try
Return designTimeHtml
End Function ' GetDesignTimeHtml
Public Overrides Sub Initialize(ByVal component As IComponent)
' Ensure that only a SimpleRadioButtonList can be created
' in this designer.
Debug.Assert( _
TypeOf component Is SimpleRadioButtonList, _
"An invalid SimpleRadioButtonList control was initialized.")
simpleRadioButtonList = CType(component, SimpleRadioButtonList)
MyBase.Initialize(component)
End Sub
' If the data source changes, set a Boolean variable.
Public Overrides Sub OnDataSourceChanged()
changedDataSource = True
End Sub
End Class
End Namespace ' Examples.VB.WebControls.Design
下面的代码示例从 RadioButtonList 控件派生SimpleRadioButtonList
控件,并演示如何使用 DesignerAttribute 类将SimpleRadioButtonList
控件与其设计器SimpleRadioButtonListDesigner
(类)相关联。
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Security.Permissions;
namespace Examples.CS.WebControls.Design
{
// The SimpleRadioButtonList is a copy of the RadioButtonList.
// It uses the SimpleRadioButtonListDesigner for design-time support.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
[Designer(typeof(Examples.CS.WebControls.Design.
SimpleRadioButtonListDesigner))]
[DataBindingHandler(typeof(Examples.CS.WebControls.Design.
SimpleRadioButtonListDataBindingHandler))]
public class SimpleRadioButtonList : RadioButtonList
{
} // SimpleRadioButtonList
} // Examples.CS.WebControls.Design
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Security.Permissions
Namespace Examples.VB.WebControls.Design
' The SimpleRadioButtonList is a copy of the RadioButtonList.
' It uses the SimpleRadioButtonListDesigner for design-time support.
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<DesignerAttribute(GetType(Examples.VB.WebControls.Design. _
SimpleRadioButtonListDesigner))> _
<DataBindingHandler(GetType(Examples.VB.WebControls.Design. _
SimpleRadioButtonListDataBindingHandler))> _
Public Class SimpleRadioButtonList
Inherits RadioButtonList
End Class
End Namespace ' Examples.VB.WebControls.Design
注解
在可视化 Web 设计器中,当用户从“源”视图切换到“设计”视图时,将分析描述派生自 类的 ListControl 控件的标记源代码,并在设计图面上创建控件的设计时版本。 当用户切换回“源”视图时,设计时控件将保留到标记源代码中,并编辑到网页的标记中。 类 ListControlDesigner 用作设计器的基类,这些设计器在可视化 Web 设计器中为派生自 ListControl的控件提供设计时支持。
类 ListControlDesigner 属性提供以下功能:
属性 ActionLists 返回一个 DesignerActionListCollection 对象,该对象通常包含一个对象,该对象派生自 DesignerActionList 设计器继承树中每个级别的 对象。
和 DataTextFieldDataValueField 属性提供对派生自 ListControl 类的控件的相应属性的访问权限。 DataTextField和 DataValueField 指示数据源的字段,这些字段分别提供列表项的文本和值内容。
类 ListControlDesigner 方法提供以下功能:
方法 DataBind 将派生自 ListControl 的关联控件绑定到设计时数据源。
方法 GetDesignTimeHtml 返回用于在设计时呈现关联控件的标记。
方法 GetSelectedDataSource 从关联的控件容器返回设计时 DataSource 组件。
方法 GetResolvedSelectedDataSource 从控件容器返回 DataSource ,该容器解析为控件的设计时 DataMember 属性。
方法 Initialize 使设计器准备好查看和设计派生自 ListControl的关联控件。
当 OnDataSourceChanged 关联控件的 更改时 DataSource ,将调用 方法。
方法 PreFilterProperties 用于从 中删除其他属性、将其他属性添加到 或隐藏派生自 的关联控件的属性 ListControl。
构造函数
ListControlDesigner() |
初始化 ListControlDesigner 类的新实例。 |
属性
ActionLists |
获取此设计器的设计器操作列表集合。 |
ActionLists |
获取控件设计器的操作列表集合。 (继承自 ControlDesigner) |
AllowResize |
获取一个值,该值指示是否可以在设计时环境中调整控件的大小。 (继承自 ControlDesigner) |
AssociatedComponents |
获取与设计器所管理的组件关联的组件集合。 (继承自 ComponentDesigner) |
AutoFormats |
获取预定义自动格式设置方案的集合,这些方案将在设计时显示于关联控件的“自动套用格式”对话框中。 (继承自 ControlDesigner) |
Behavior |
已过时.
获取或设置与设计器关联的 DHTML 行为。 (继承自 HtmlControlDesigner) |
Component |
获取此设计器正在设计的组件。 (继承自 ComponentDesigner) |
DataBindings |
获取当前控件的数据绑定集合。 (继承自 HtmlControlDesigner) |
DataBindingsEnabled |
获取一个值,该值指示包含关联控件的区域是否支持数据绑定。 (继承自 ControlDesigner) |
DataMember |
获取或设置控件的数据成员。 |
DataMember |
获取基础数据绑定控件的隐藏 DataMember 属性。 (继承自 DataBoundControlDesigner) |
DataSource |
获取或设置控件的数据源属性。 |
DataSource |
获取或设置关联控件的 DataSource 属性值。 (继承自 BaseDataBoundControlDesigner) |
DataSourceDesigner |
获取基础数据绑定控件的数据源的设计器。 (继承自 DataBoundControlDesigner) |
DataSourceID |
获取或设置基础 DataSourceID 对象的 BaseDataBoundControl 属性值。 (继承自 BaseDataBoundControlDesigner) |
DataTextField |
获取或设置控件的数据文本字段。 |
DataValueField |
获取或设置控件的数据值字段。 |
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) |
RootDesigner |
获取包含关联控件的 Web 窗体页的控件设计器。 (继承自 ControlDesigner) |
SampleRowCount |
获取数据绑定控件显示在设计图面上的行数。 (继承自 DataBoundControlDesigner) |
SetTextualDefaultProperty |
用作设计器的基类,这些设计器在可视 Web 设计器中为 ListControl 抽象类派生的控件提供设计时支持。 (继承自 ComponentDesigner) |
ShadowProperties |
获取重写用户设置的属性值的集合。 (继承自 ComponentDesigner) |
ShouldCodeSerialize |
已过时.
获取或设置一个值,该值指示在序列化期间是否应为当前设计文档在代码隐藏文件中创建控件的字段声明。 (继承自 HtmlControlDesigner) |
Tag |
获取表示关联控件的 HTML 标记元素的对象。 (继承自 ControlDesigner) |
TemplateGroups |
获取一个模板组集合,其中每个模板组包含一个或多个模板定义。 (继承自 ControlDesigner) |
UseDataSourcePickerActionList |
获取一个值,该值指示关联控件是否应呈现其默认操作列表。 |
UsePreviewControl |
获取一个值,该值指示控件设计器是否使用临时预览控件来生成设计时 HTML 标记。 (继承自 ControlDesigner) |
Verbs |
获取与设计器相关联的组件所支持的设计时谓词。 (继承自 ComponentDesigner) |
ViewControl |
获取或设置可用于预览设计时 HTML 标记的 Web 服务器控件。 (继承自 ControlDesigner) |
ViewControlCreated |
获取或设置一个值,该值指示是否已创建 |
Visible |
获取指示该控件在设计时是否可见的值。 (继承自 ControlDesigner) |