Table Web サーバー コントロール

テーブルを宣言し、プログラムによって操作できるようにします。

<asp:Tableid="Table1"     BackImageUrl="url"     CellSpacing="cellspacing"     CellPadding="cellpadding"     GridLines="None|Horizontal|Vertical|Both"     HorizontalAlign="Center|Justify|Left|NotSet|Right"     runat="server">   <asp:TableRow>      <asp:TableCell>         Cell text      </asp:TableCell>   </asp:TableRow></asp:Table>

解説

Table クラスを使用して、HTML テーブルを構築し、その特性を指定できます。静的なコンテンツを含むテーブルはデザイン時に構築できますが、一般に、動的なコンテンツを含む Table コントロールはプログラムによって構築されます。

メモ   プログラムによるテーブルの行やセルの追加または変更は、サーバーにポスト バックされたときに失われます。テーブルの行とセルは、それぞれ独自のコントロールであり、Table コントロールのプロパティではありません。テーブルの行またはセルの変更は、サーバーにポスト バックするたびに再構築する必要があります。本質的な変更が行われることが明らかな場合は、Table コントロールではなく、DataList コントロールまたは DataGrid コントロールを使用してください。

Table コントロールは、そのコントロールの Rows コレクションに格納された行で構成されます。これらの行は、TableRow クラスのインスタンスで表されます。各行は、各 TableRowCells コレクションに格納されたセルで構成されます。これらのセルは、TableCell クラスのインスタンスで表されます。

BackImageUrl プロパティを設定して、Table コントロールの背景にイメージを表示できます。既定では、テーブルの項目の水平方向の配置は設定されていません。水平方向の配置を指定するには、HorizontalAlignment プロパティを設定します。各セル間の間隔は、CellSpacing プロパティで制御します。セルの内容とセルの境界線の間に含める空白の量を指定するには、CellPadding プロパティを設定します。セルの境界線を表示するには、GridLines プロパティを設定します。水平線、垂直線、または水平線と垂直線の両方を表示できます。

注意   テキストは、Table コントロールに表示される前には HTML エンコードされません。これにより、テキストの HTML タグ内にスクリプトを埋め込むことができるようになります。コントロールの値がユーザーによって入力された場合は、セキュリティの脆弱性への対策として、入力された値を必ず検証してください。

Table Web サーバー コントロールのプロパティとイベントの詳細については、Table クラスのドキュメントを参照してください。

Web ページ上に動的に Table コントロールを作成する方法を次の例に示します。

<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>
   <script runat="server">
      Sub Page_Load(sender As Object, e As EventArgs)
         ' Generate rows and cells.           
         Dim numrows As Integer = 3
         Dim numcells As Integer = 2
         Dim j As Integer
         For j = 0 To numrows - 1
            Dim r As New TableRow()
            Dim i As Integer
            For i = 0 To numcells - 1
               Dim c As New TableCell()
               c.Controls.Add(New LiteralControl("row " & j.ToString() & _
                              ", cell " & i.ToString()))
               r.Cells.Add(c)
            Next i
            Table1.Rows.Add(r)
         Next j
      End Sub 'Page_Load
   </script>
</head>
<body>
   <form runat="server">
      <h3>Table Example</h3>

      <asp:Table id="Table1" 
           Font-Name="Verdana" 
           Font-Size="8pt" 
           CellPadding="5" 
           CellSpacing="0"           
           BorderWidth="1" 
           Gridlines="Both" 
           runat="server"/>
   </form>
</body>
</html>
[C#]
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
   <script runat="server">
      void Page_Load(Object sender, EventArgs e) 
      {
         // Generate rows and cells.           
         int numrows = 3;
         int numcells = 2;
         for (int j=0; j<numrows; j++) 
         {          
            TableRow r = new TableRow();
            for (int i=0; i<numcells; i++) 
            {
               TableCell c = new TableCell();
               c.Controls.Add(new LiteralControl("row " + j.ToString() +
                              ", cell " + i.ToString()));
               r.Cells.Add(c);
            }
            Table1.Rows.Add(r);
         }
      }
   </script>
</head>
<body>
   <form runat=server>
      <h3>Table Example</h3>
      <asp:Table id="Table1" 
           GridLines="Both" 
           HorizontalAlign="Center" 
           Font-Name="Verdana" 
           Font-Size="8pt" 
           CellPadding="15" 
           CellSpacing="0" 
           runat="server"/>
   </form>
</body>
</html>

参照

Web サーバー コントロール | Table クラス