Partager via


DetailsViewDesigner.GetDesignTimeHtml Méthode

Définition

Obtient le balisage utilisé pour restituer le contrôle DetailsView associé au moment de la conception.

Surcharges

GetDesignTimeHtml()

Obtient le balisage utilisé pour afficher le contrôle associé au moment de la conception.

GetDesignTimeHtml(DesignerRegionCollection)

Obtient le balisage utilisé pour afficher le contrôle associé au moment de la conception et remplit une collection de zones du concepteur.

GetDesignTimeHtml()

Obtient le balisage utilisé pour afficher le contrôle associé au moment de la conception.

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

Retours

String qui contient le balisage utilisé pour afficher DetailsView au moment de la conception.

Exemples

L’exemple de code suivant montre comment remplacer la GetDesignTimeHtml méthode dans une classe héritée de la DetailsViewDesigner classe pour modifier l’apparence du contrôle au moment de la DetailsView conception. L’exemple ajoute une nouvelle première ligne à la grille pour contenir la Caption propriété, si le Caption est défini. Si la BorderStyle propriété du contrôle dérivé est DetailsView la NotSet valeur ou None , GetDesignTimeHtml le dessine une bordure en pointillés bleus autour du contrôle pour rendre son étendue plus visible. Cela ne modifie pas l’apparence au moment de l’exécution du contrôle.

// 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

Remarques

Tout d’abord, la GetDesignTimeHtml() méthode définit la AutoGenerateRows propriété du DetailsView contrôle sur true, si la Fields collection est vide. ensuite GetDesignTimeHtml définit la DataKeyNames collection du GetDesignTimeHtml contrôle sur un tableau vide String si le schéma de la source de données ne peut pas être obtenu. Il actualise l’objet TypeDescriptor pour forcer l’appel de la PreFilterProperties méthode. Il appelle ensuite la méthode de base pour générer le balisage.

Notes pour les héritiers

Si vous remplacez la GetDesignTimeHtml() méthode, veillez à appeler la méthode de base, car elle appelle éventuellement, par le biais de plusieurs niveaux de remplacement, des appels sur le DetailsView contrôle ou une copie du contrôle pour générer le balisage.

Voir aussi

S’applique à

GetDesignTimeHtml(DesignerRegionCollection)

Obtient le balisage utilisé pour afficher le contrôle associé au moment de la conception et remplit une collection de zones du concepteur.

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

Paramètres

regions
DesignerRegionCollection

DesignerRegionCollection à laquelle ajouter des définitions des régions pouvant être sélectionnées et cliquées dans la vue au moment de la conception du contrôle.

Retours

String qui contient le balisage utilisé pour afficher DetailsView au moment de la conception.

Exemples

L’exemple de code suivant montre comment remplacer la GetDesignTimeHtml méthode dans une classe héritée de la DetailsViewDesigner classe pour modifier l’apparence du DetailsView contrôle au moment du design. L’exemple ajoute une nouvelle première ligne à la grille pour contenir la Caption propriété, si le Caption est défini. Si la BorderStyle propriété du contrôle dérivé de est la DetailsViewNotSet valeur ou None , GetDesignTimeHtml le dessine une bordure en pointillés bleus autour du contrôle pour rendre son étendue plus visible. Cela ne modifie pas l’apparence au moment de l’exécution du contrôle.

// 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

Remarques

La DetailsViewDesigner.GetDesignTimeHtml méthode appelle la DetailsViewDesigner.GetDesignTimeHtml méthode pour générer le balisage pour le rendu au moment de la conception du DetailsView contrôle. La DetailsViewDesigner.GetDesignTimeHtml méthode remplit regions également un DesignerRegion objet pour chaque région cliquable ou sélectionnable du rendu au moment du design.

Pour , DetailsViewla première cellule de chaque ligne est sélectionnable ; toutes les cellules des lignes sont cliquables.

Notes pour les héritiers

Si vous remplacez la GetDesignTimeHtml(DesignerRegionCollection) méthode, veillez à appeler la méthode de base ou la GetDesignTimeHtml() surcharge, car ils appellent éventuellement, via plusieurs niveaux de remplacement, sur le DetailsView contrôle ou une copie du contrôle pour générer le balisage.

Voir aussi

S’applique à