GetDesignTimeHtml Method
Collapse the table of content
Expand the table of content

DetailsViewDesigner.GetDesignTimeHtml Method

Gets the markup that is used to render the associated control at design time.

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

public override string GetDesignTimeHtml()

Return Value

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

First, the GetDesignTimeHtml() method sets the AutoGenerateRows property of the DetailsView control to true, if the Fields collection is empty. The GetDesignTimeHtml then sets the DataKeyNames collection of the GetDesignTimeHtml control to an empty String array if the schema of the data source cannot be obtained. It refreshes the TypeDescriptor object to force the PreFilterProperties method to be called. It then calls the base method to generate the markup.

Notes to Inheritors

If you override the GetDesignTimeHtml method, be sure to call the base method because it eventually, through several override levels, calls 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 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 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.
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


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

ADD
Show:
© 2016 Microsoft