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 クラスのインスタンスで表されます。各行は、各 TableRow の Cells コレクションに格納されたセルで構成されます。これらのセルは、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>