GetDesignTimeHtml Method (DesignerRegionCollection)
Collapse the table of content
Expand the table of content

DetailsViewDesigner.GetDesignTimeHtml Method (DesignerRegionCollection)

 

Gets the markup that is used to render the associated control at design time and populates a collection of designer regions.

Namespace:   System.Web.UI.Design.WebControls
Assembly:  System.Design (in System.Design.dll)

Public Overrides Function GetDesignTimeHtml (
	regions As DesignerRegionCollection
) As String

Parameters

regions
Type: System.Web.UI.Design.DesignerRegionCollection

A DesignerRegionCollection to which to add definitions of the selectable and clickable regions in the design-time view of the control.

Return Value

Type: System.String

A String containing the markup used to render the DetailsView at design time.

The DetailsViewDesigner.GetDesignTimeHtml method calls the DetailsViewDesigner.GetDesignTimeHtml method to generate the markup for the design-time rendering of the DetailsView control. The DetailsViewDesigner.GetDesignTimeHtml method also populates regions with a DesignerRegion object for each clickable or selectable region of the design-time rendering.

For the DetailsView, the first cell in each row is selectable; all the cells in the rows are clickable.

Notes to Inheritors:

If you override the GetDesignTimeHtml(DesignerRegionCollection) method, be sure to call the base method or the GetDesignTimeHtml() overload because they eventually, through several override levels, call on the DetailsView control or a copy of the control to generate the markup.

The following code example shows how to override the GetDesignTimeHtml method in a class that is inherited from the DetailsViewDesigner class to change the appearance of the DetailsView control at design time. The example adds a new first row to the grid to contain the Caption property, if the Caption is defined. If the BorderStyle property of the control that is derived from the DetailsView is the NotSet or None value, the GetDesignTimeHtml draws a blue dashed border around the control to make its extent more visible. It does not change the run-time appearance of the control.

' 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

.NET Framework
Available since 2.0
Return to top
Show:
© 2016 Microsoft