Freigeben über


DetailsViewDesigner.GetDesignTimeHtml Methode

Definition

Ruft das Markup ab, das für das Rendering des zugeordneten DetailsView-Steuerelements zur Entwurfszeit verwendet wird.

Überlädt

GetDesignTimeHtml()

Ruft das Markup ab, das zum Rendern des zugeordneten Steuerelements zur Entwurfszeit verwendet wird.

GetDesignTimeHtml(DesignerRegionCollection)

Ruft das Markup ab, das für das Rendering des zugeordneten Steuerelements zur Entwurfszeit verwendet wird, und füllt eine Auflistung von Designerbereichen auf.

GetDesignTimeHtml()

Ruft das Markup ab, das zum Rendern des zugeordneten Steuerelements zur Entwurfszeit verwendet wird.

public:
 override System::String ^ GetDesignTimeHtml();
public override string GetDesignTimeHtml ();
override this.GetDesignTimeHtml : unit -> string
Public Overrides Function GetDesignTimeHtml () As String

Gibt zurück

Ein String, der das Markup enthält, mit dem der DetailsView zur Entwurfszeit gerendert wird.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die GetDesignTimeHtml -Methode in einer von der DetailsViewDesigner -Klasse geerbten Klasse überschrieben wird, um die Darstellung des Steuerelements DetailsView zur Entwurfszeit zu ändern. Im Beispiel wird dem Raster eine neue erste Zeile hinzugefügt, die die Caption -Eigenschaft enthält, wenn definiert Caption ist. Wenn die BorderStyle Eigenschaft des Steuerelements, das von DetailsView abgeleitet wird, der NotSet -Wert oder None ist, zeichnet einen GetDesignTimeHtml blauen gestrichelten Rahmen um das Steuerelement, um dessen Ausdehnung sichtbarer zu machen. Die Laufzeitdarstellung des Steuerelements wird dadurch nicht geändert.

// Generate the design-time markup.
const string capTag = "caption";
const string trOpen = "tr><td colspan=2 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.
    MyDetailsView myDV = (MyDetailsView)Component;
    string markup = null;
    int charX;

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

        // Set design-time properties and catch any exceptions.
        try
        {
            myDV.BorderStyle = BorderStyle.Dashed;
            myDV.BorderWidth = Unit.Pixel(3);
            myDV.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.
            myDV.BorderStyle = oldBorderStyle;
            myDV.BorderWidth = oldBorderWidth;
            myDV.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=2 align=center".
        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
' Generate the design-time markup.
Private Const capTag As String = "caption"
Private Const trOpen As String = "tr><td colspan=2 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 myDV As MyDetailsView = CType(Component, MyDetailsView)
    Dim markup As String = Nothing
    Dim charX As Integer

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

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

        ' Set design-time properties and catch any exceptions.
        Try
            myDV.BorderStyle = BorderStyle.Dashed
            myDV.BorderWidth = Unit.Pixel(3)
            myDV.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.
            myDV.BorderStyle = oldBorderStyle
            myDV.BorderWidth = oldBorderWidth
            myDV.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=2 align=center".
        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

Hinweise

Zunächst legt die GetDesignTimeHtml() -Methode die AutoGenerateRows -Eigenschaft des -Steuerelements DetailsView auf fest true, wenn die Fields Auflistung leer ist. Legt GetDesignTimeHtml dann die DataKeyNames Auflistung des GetDesignTimeHtml Steuerelements auf ein leeres String Array fest, wenn das Schema der Datenquelle nicht abgerufen werden kann. Es aktualisiert das TypeDescriptor -Objekt, um den Aufruf der PreFilterProperties -Methode zu erzwingen. Anschließend wird die Basismethode aufgerufen, um das Markup zu generieren.

Hinweise für Vererber

Wenn Sie die GetDesignTimeHtml() -Methode überschreiben, achten Sie darauf, die Basismethode aufzurufen, da sie schließlich über mehrere Überschreibungsebenen das DetailsView Steuerelement oder eine Kopie des Steuerelements aufruft, um das Markup zu generieren.

Weitere Informationen

Gilt für:

GetDesignTimeHtml(DesignerRegionCollection)

Ruft das Markup ab, das für das Rendering des zugeordneten Steuerelements zur Entwurfszeit verwendet wird, und füllt eine Auflistung von Designerbereichen auf.

public:
 override System::String ^ GetDesignTimeHtml(System::Web::UI::Design::DesignerRegionCollection ^ regions);
public override string GetDesignTimeHtml (System.Web.UI.Design.DesignerRegionCollection regions);
override this.GetDesignTimeHtml : System.Web.UI.Design.DesignerRegionCollection -> string
Public Overrides Function GetDesignTimeHtml (regions As DesignerRegionCollection) As String

Parameter

regions
DesignerRegionCollection

Eine DesignerRegionCollection, der Definitionen der Bereiche in der Entwurfszeitansicht des Steuerelements hinzugefügt werden, die auswählbar sind und auf die geklickt werden kann.

Gibt zurück

Ein String, der das Markup enthält, mit dem der DetailsView zur Entwurfszeit gerendert wird.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die GetDesignTimeHtml -Methode in einer Klasse überschrieben wird, die von der DetailsViewDesigner -Klasse geerbt wird, um die Darstellung des Steuerelements DetailsView zur Entwurfszeit zu ändern. Im Beispiel wird dem Raster eine neue erste Zeile hinzugefügt, die die Caption -Eigenschaft enthält, wenn definiert Caption ist. Wenn die BorderStyle Eigenschaft des Steuerelements, das von abgeleitet DetailsView wird, der NotSet -Wert oder None ist, zeichnet einen GetDesignTimeHtml blauen gestrichelten Rahmen um das Steuerelement, um dessen Ausdehnung sichtbarer zu machen. Die Laufzeitdarstellung des Steuerelements wird dadurch nicht geändert.

// Generate the design-time markup.
const string capTag = "caption";
const string trOpen = "tr><td colspan=2 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.
    MyDetailsView myDV = (MyDetailsView)Component;
    string markup = null;
    int charX;

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

        // Set design-time properties and catch any exceptions.
        try
        {
            myDV.BorderStyle = BorderStyle.Dashed;
            myDV.BorderWidth = Unit.Pixel(3);
            myDV.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.
            myDV.BorderStyle = oldBorderStyle;
            myDV.BorderWidth = oldBorderWidth;
            myDV.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=2 align=center".
        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
' Generate the design-time markup.
Private Const capTag As String = "caption"
Private Const trOpen As String = "tr><td colspan=2 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 myDV As MyDetailsView = CType(Component, MyDetailsView)
    Dim markup As String = Nothing
    Dim charX As Integer

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

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

        ' Set design-time properties and catch any exceptions.
        Try
            myDV.BorderStyle = BorderStyle.Dashed
            myDV.BorderWidth = Unit.Pixel(3)
            myDV.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.
            myDV.BorderStyle = oldBorderStyle
            myDV.BorderWidth = oldBorderWidth
            myDV.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=2 align=center".
        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

Hinweise

Die DetailsViewDesigner.GetDesignTimeHtml -Methode ruft die DetailsViewDesigner.GetDesignTimeHtml -Methode auf, um das Markup für das Entwurfszeitrendering des DetailsView Steuerelements zu generieren. Die DetailsViewDesigner.GetDesignTimeHtml -Methode füllt regions auch ein DesignerRegion -Objekt für jeden klickbaren oder auswählbaren Bereich des Entwurfszeitrenderings auf.

Für ist DetailsViewdie erste Zelle in jeder Zeile auswählbar. Alle Zellen in den Zeilen können geklickt werden.

Hinweise für Vererber

Wenn Sie die GetDesignTimeHtml(DesignerRegionCollection) -Methode überschreiben, achten Sie darauf, die Basismethode oder die GetDesignTimeHtml() Überladung aufzurufen, da sie schließlich über mehrere Überschreibungsebenen das DetailsView Steuerelement oder eine Kopie des Steuerelements aufrufen, um das Markup zu generieren.

Weitere Informationen

Gilt für: