TableDesigner Class

Extends design-time behavior for the Table Web server control.

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

Public Class TableDesigner
	Inherits ControlDesigner
Dim instance As TableDesigner

public class TableDesigner extends ControlDesigner
public class TableDesigner extends ControlDesigner
Not applicable.

The section contains two code examples. The first code example demonstrates how to derive a class from the TableDesigner class. The second code example demonstrates how to display the StyledTable class at design time.

The following code example demonstrates how to create a designer class named StyledTableDesigner, which is derived from the TableDesigner class, and is used to display two cells at design time for a class that is derived from the Table class.

' Create a class, named StyledTableDesigner,
' that derives from the TableDesigner class.
' This class displays a class named StyledTable
' at design time.
Public Class StyledTableDesigner
   Inherits TableDesigner
   ' Override the GetDesignTimeHtml method to display
   ' placeholder text at design time for the 
   ' rows and cells of the StyledTable class.
   Public Overrides Function GetDesignTimeHtml() As String
       Dim sTable As StyledTable = CType(Component, StyledTable)
       Dim designTimeHTML As String
       Dim rows As TableRowCollection = sTable.Rows
       Dim cellsWithDummyContents As ArrayList = Nothing
       Dim emptyTable As Boolean = rows.Count = 0
       Dim emptyRows As Boolean = False
       Dim counter As Integer = 1
       Dim numcells As Integer = 2
           ' Create two cells to display
           ' in a row at design time.
           If emptyTable Then
               Dim row As TableRow = New TableRow()
               Dim i As Integer
               For i = 0 To numcells - 1
                   Dim c As TableCell = New TableCell()
                   c.Text = "Cell #" & counter.ToString()
                   counter += 1
               Next i
               emptyRows = True
               Dim j As Integer
               For j = 0 To rows.Count - 1
                   If rows(j).Cells.Count <> 0 Then
                       emptyRows = False
                       Exit For
                   End If
               Next j
               If emptyRows = True Then
                   Dim k As Integer
                   For k = 0 To numcells - 1
                       Dim c As TableCell = New TableCell()
                       c.Text = "Cell #" & counter.ToString()
                       counter += 1
                   Next k
                End If
           End If
           If emptyTable = False Then
               ' If the rows and cells were defined by the user, but the
               ' cells remain empty this code defines a string to display 
               ' in them at design time.
               Dim row As TableRow
               For Each row In rows
                   Dim c As TableCell
                   For Each c In row.Cells
                       If ((c.Text.Length = 0) AndAlso (c.HasControls() = False)) Then
                          If cellsWithDummyContents Is Nothing Then
                              cellsWithDummyContents = New ArrayList()
                          End If
                          c.Text = "Cell #" & counter.ToString()
                          counter += 1
                       End If
                   Next c
               Next row
           End If
           ' Retrieve the design-time HTML for the StyledTable class.
           designTimeHTML = MyBase.GetDesignTimeHtml()

           ' If the StyledTable was empty before the dummy text was added,
           ' restore it to that state.
           If emptyTable Then
               ' Clear the cells that were empty before the dummy text 
               ' was added.
               If Not (cellsWithDummyContents Is Nothing) Then
                   Dim c As TableCell
                   For Each c In  cellsWithDummyContents
                       c.Text = [String].Empty
                   Next c
               End If
               If emptyRows Then
               End If
           End If
       End Try
       Return designTimeHTML
   End Function

End Class

The following code example uses the DesignerAttribute to associate the StyledTableDesigner class with the StyledTable class so that it can be displayed at design time.

 ' Create a class that uses the StyledTableDesigner
 ' class to display its contents at design time.
<Designer("Examples.AspNet.Design.StyledTableDesigner", "TableDesigner")> _
Public Class StyledTable
  Inherits Table 

    Private tableStyle As Style = New Style()
    Public Sub New()
       tableStyle.BackColor = Color.LightBlue
       tableStyle.BorderColor = Color.Black
       CellSpacing = 4
       CellPadding = 0
       GridLines = GridLines.None
       BorderWidth = Unit.Point(1)
       Width = Unit.Percentage(100)
       Height = Unit.Percentage(100)

    End Sub
End Class

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

Community Additions