ListControlDesigner-Klasse
Fungiert als die Basisklasse für Designer, die in Visual Web Designer Entwurfszeitunterstützung für Steuerelemente bieten, die von der abstrakten ListControl-Klasse abgeleitet sind.
Namespace: System.Web.UI.Design.WebControls
Assembly: System.Design (in system.design.dll)
Syntax
'Declaration
Public Class ListControlDesigner
Inherits DataBoundControlDesigner
'Usage
Dim instance As ListControlDesigner
public class ListControlDesigner : DataBoundControlDesigner
public ref class ListControlDesigner : public DataBoundControlDesigner
public class ListControlDesigner extends DataBoundControlDesigner
public class ListControlDesigner extends DataBoundControlDesigner
Hinweise
Wenn Benutzer in Visual Web Designer von der Quellansicht zur Entwurfsansicht wechseln, wird der Markupquellcode analysiert, der das von der ListControl-Klasse abgeleitete Steuerelement beschreibt, und eine Entwurfszeitversion des Steuerelements wird auf der Entwurfsoberfläche erstellt. Wenn der Benutzer zurück zur Quellansicht wechselt, wird das Entwurfszeit-Steuerelement im Markupquellcode beibehalten und in das Markup für die Webseite eingearbeitet. Die ListControlDesigner-Klasse fungiert als die Basisklasse für Designer, die in Visual Web Designer Entwurfszeitunterstützung für Steuerelemente bieten, die von ListControl abgeleitet sind.
Die ListControlDesigner-Klasseneigenschaften bieten folgende Funktionalität:
Die ActionLists-Eigenschaft gibt ein DesignerActionListCollection-Objekt zurück, das üblicherweise ein Objekt enthält, das für jede Ebene in der Vererbungsstruktur des Designers vom DesignerActionList-Objekt abgeleitet wird.
Die DataTextField-Eigenschaft und die DataValueField-Eigenschaft ermöglichen den Zugriff auf die zugehörigen Eigenschaften eines von der ListControl-Klasse abgeleiteten Steuerelements. DataTextField und DataValueField geben die Felder der Datenquelle an, die den Text- bzw. den Werteinhalt der Listenelemente bereitstellen.
Die ListControlDesigner-Klassenmethoden bieten folgende Funktionalität:
Die DataBind-Methode bindet das zugeordnete von ListControl abgeleitete Steuerelement an eine Entwurfszeitdatenquelle.
Die GetDesignTimeHtml-Methode gibt das Markup zurück, das zum Rendering des zugeordneten Steuerelements zur Entwurfszeit verwendet wird.
Die GetSelectedDataSource-Methode gibt die Entwurfszeit-DataSource-Komponente des zugeordneten Steuerelementcontainers zurück.
Die GetResolvedSelectedDataSource-Methode gibt die DataSource des Steuerelementcontainers zurück, die zur Entwurfszeit zur DataMember-Eigenschaft des Steuerelements aufgelöst wird.
Die Initialize-Methode bereitet des Designer zum Anzeigen und Entwerfen des zugeordneten von ListControl abgeleiteten Steuerelements vor.
Die OnDataSourceChanged-Methode wird aufgerufen, wenn sich die DataSource des zugeordneten Steuerelements geändert hat.
Mit der PreFilterProperties-Methode werden Eigenschaften aus dem zugeordneten Steuerelement entfernt, diesem weitere Eigenschaften hinzugefügt oder Shadowing für die Eigenschaften des zugeordneten Steuerelements durchgeführt, das von ListControl abgeleitet ist.
Beispiel
Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Beispiel wird veranschaulicht, wie ein benutzerdefinierter Steuerelement-Designer abgeleitet wird. Im zweiten Beispiel wird veranschaulicht, wie ein abgeleitetes Steuerelement einem Designer zugeordnet wird.
Im folgenden Codebeispiel wird veranschaulicht, wie eine Klasse mit dem Namen SimpleRadioButtonListDesigner
erstellt wird, die von der ListControlDesigner-Klasse erbt. Die SimpleRadioButtonListDesigner
-Klasse überschreibt die GetDesignTimeHtml-Methode, die Initialize-Methode und die OnDataSourceChanged-Methode. Die SimpleRadioButtonListDesigner
-Klasse zeigt ein SimpleRadioButtonList
-Steuerelement auf der Entwurfsoberfläche an.
Imports System
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 ' Initialize
' If the data source changes, set a Boolean variable.
Public Overrides Sub OnDataSourceChanged()
changedDataSource = True
End Sub ' OnDataSourceChanged
End Class ' SimpleRadioButtonListDesigner
End Namespace ' Examples.VB.WebControls.Design
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
Im folgenden Codebeispiel wird das SimpleRadioButtonList
-Steuerelement vom RadioButtonList-Steuerelement abgeleitet, und es wird veranschaulicht, wie das SimpleRadioButtonList
-Steuerelement mithilfe der DesignerAttribute-Klasse seinem Designer, der SimpleRadioButtonListDesigner
-Klasse, zugeordnet wird.
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 ' SimpleRadioButtonList
End Namespace ' Examples.VB.WebControls.Design
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
.NET Framework-Sicherheit
- SecurityPermission für den Aufruf von nicht verwaltetem Code. Anforderungswert: Demand. Berechtigungswert: UnmanagedCode
Vererbungshierarchie
System.Object
System.ComponentModel.Design.ComponentDesigner
System.Web.UI.Design.HtmlControlDesigner
System.Web.UI.Design.ControlDesigner
System.Web.UI.Design.WebControls.BaseDataBoundControlDesigner
System.Web.UI.Design.WebControls.DataBoundControlDesigner
System.Web.UI.Design.WebControls.ListControlDesigner
System.Web.UI.Design.WebControls.BulletedListDesigner
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
ListControlDesigner-Member
System.Web.UI.Design.WebControls-Namespace
ListControl
DataBoundControl
DataBoundControlDesigner-Klasse
BaseDataBoundControl
BaseDataBoundControlDesigner-Klasse
WebControl
ControlDesigner-Klasse
Weitere Ressourcen
Übersicht über ASP.NET-Steuerelement-Designer
Exemplarische Vorgehensweise: Erstellen eines einfachen Steuerelement-Designers für ein Webserver-Steuerelement