Sdílet prostřednictvím


DetailsViewDesigner.GetDesignTimeHtml Metoda

Definice

Získá kód, který se používá k vykreslení přidruženého DetailsView ovládacího prvku v době návrhu.

Přetížení

GetDesignTimeHtml()

Získá kód, který se používá k vykreslení přidruženého ovládacího prvku v době návrhu.

GetDesignTimeHtml(DesignerRegionCollection)

Získá kód, který se používá k vykreslení přidruženého ovládacího prvku v době návrhu a naplní kolekci oblastí návrháře.

GetDesignTimeHtml()

Získá kód, který se používá k vykreslení přidruženého ovládacího prvku v době návrhu.

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

Návraty

A String obsahující značky použité k vykreslení v době návrhu DetailsView .

Příklady

Následující příklad kódu ukazuje, jak přepsat metodu GetDesignTimeHtml ve třídě zděděné z DetailsViewDesigner třídy změnit vzhled ovládacího prvku v době návrhu DetailsView . Příklad přidá do mřížky nový první řádek, který bude obsahovat Caption vlastnost, pokud Caption je definována. BorderStyle Pokud je vlastnost ovládacího prvku odvozená od DetailsViewNotSet hodnoty neboNone, GetDesignTimeHtml nakreslí modré přerušované ohraničení kolem ovládacího prvku, aby byl jeho rozsah viditelnější. Nemění vzhled ovládacího prvku za běhu.

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

Poznámky

GetDesignTimeHtml() Nejprve metoda nastaví AutoGenerateRows vlastnost ovládacího prvku DetailsView na true, pokud Fields je kolekce prázdná. Potom GetDesignTimeHtml nastaví kolekci DataKeyNamesGetDesignTimeHtml ovládacího prvku na prázdné String pole, pokud nelze získat schéma zdroje dat. Aktualizuje objekt, TypeDescriptor aby vynutil PreFilterProperties zavolání metody. Pak zavolá základní metodu pro vygenerování značek.

Poznámky pro dědice

Pokud přepíšete metodu GetDesignTimeHtml() , nezapomeňte volat základní metodu, protože nakonec prostřednictvím několika úrovní přepsání zavolá na DetailsView ovládací prvek nebo kopii ovládacího prvku pro vygenerování značky.

Viz také

Platí pro

GetDesignTimeHtml(DesignerRegionCollection)

Získá kód, který se používá k vykreslení přidruženého ovládacího prvku v době návrhu a naplní kolekci oblastí návrháře.

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

Parametry

regions
DesignerRegionCollection

A DesignerRegionCollection , do kterého se mají přidat definice oblastí, na které lze vybrat a na které lze kliknout, v zobrazení ovládacího prvku v době návrhu.

Návraty

A String obsahující značky použité k vykreslení v době návrhu DetailsView .

Příklady

Následující příklad kódu ukazuje, jak přepsat metodu GetDesignTimeHtml ve třídě, která je zděděna z DetailsViewDesigner třídy změnit vzhled ovládacího prvku v době návrhu DetailsView . Příklad přidá do mřížky nový první řádek, který bude obsahovat Caption vlastnost, pokud Caption je definována. BorderStyle Pokud je vlastnost ovládacího prvku odvozená od DetailsViewNotSet hodnoty nebo None hodnota, GetDesignTimeHtml nakreslí kolem ovládacího prvku modré přerušované ohraničení, aby byl jeho rozsah viditelnější. Nemění vzhled ovládacího prvku za běhu.

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

Poznámky

Metoda DetailsViewDesigner.GetDesignTimeHtml volá metodu DetailsViewDesigner.GetDesignTimeHtml pro vygenerování kódu pro vykreslování ovládacího prvku v době návrhu DetailsView . Metoda DetailsViewDesigner.GetDesignTimeHtml také naplní regions objektem DesignerRegion pro každou kliknutelnou nebo vybratelnou oblast vykreslování v době návrhu.

DetailsViewPro objekt je možné vybrat první buňku v každém řádku; na všechny buňky v řádcích lze kliknout.

Poznámky pro dědice

Pokud přepíšete metodu GetDesignTimeHtml(DesignerRegionCollection) , nezapomeňte volat základní metodu GetDesignTimeHtml() nebo přetížení, protože nakonec prostřednictvím několika úrovní přepsání volají na DetailsView ovládací prvek nebo kopii ovládacího prvku, aby se vygenerovaly značky.

Viz také

Platí pro