Export (0) Print
Expand All

TableDesigner Class

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

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

[SupportsPreviewControlAttribute(true)]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public class TableDesigner : ControlDesigner

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

       Try      
           ' Create two cells to display 
           ' in a row at design time. 
           If emptyTable Then 
               Dim row As TableRow = New TableRow()
               rows.Add(row)

               Dim i As Integer 
               For i = 0 To numcells - 1
                   Dim c As TableCell = New TableCell()
                   c.Text = "Cell #" & counter.ToString()
                   counter += 1
                   rows(0).Cells.Add(c)
               Next i
           Else
               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
                       rows(0).Cells.Add(c)
                   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
                          cellsWithDummyContents.Add(c)
                          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()

       Finally 
           ' If the StyledTable was empty before the dummy text was added, 
           ' restore it to that state. 
           If emptyTable Then
               rows.Clear()
           Else 
               ' 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
                   rows(0).Cells.Clear()
               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 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

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

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft