Export (0) Print
Expand All

GridViewDesigner.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 override string GetDesignTimeHtml(
	DesignerRegionCollection regions
)

Parameters

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

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

Return Value

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

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

For the GridView, 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 GridView 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 GridViewDesigner class to change the appearance of the GridView 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 GridView class has 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=9 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.
    MyGridView myGV = (MyGridView)Component;
    string markup = null;
    int charX;

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

        // Set the design-time properties and catch any exceptions. 
        try
        {
            myGV.BorderStyle = BorderStyle.Dashed;
            myGV.BorderWidth = Unit.Pixel(3);
            myGV.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.
            myGV.BorderStyle = oldBorderStyle;
            myGV.BorderWidth = oldBorderWidth;
            myGV.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=9 align=center".
        // It is okay if the colspan exceeds the  
        // number of columns in the table.
        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.6, 4.5, 4, 3.5, 3.0, 2.0
Show:
© 2015 Microsoft