|
■No74214 (たいよう さん) に返信
> →GridView や ListViewの事を忘れておりました。
> 最初にテーブルタグを使用し、このまま複数個増やすことは出来るかどうか気になった為、今回の質問に至ります。
> GridView や ListView使用して作成することが出来るかどうか一度調べてみようと思います。
単純に自分の興味や勉強のため、Table サーバーコントロールを使ってテーブルを作ってみ
たいという話であれば、それはそれで結構ですが、本来の目的は別のところにあるとすると、
まず最初にその目的を達成するのにどういう手段を取るのが最適かを考えませんか?
それにも知識やスキルが必要なので初心者の方には難しいのかもしれませんが、そうであれ
ば、局所的な質問だけでなく、全体のシナリオを含めて何がしたいのかを書いください。
そうすれば、質問の部分は実現困難もしくは目的達成に不適切でも、「それはできない or
不適切だけど、やりたいことはこうすれば実現できる」というような代案が出せるかもしれ
ません。
面倒なことを言うと思うかもしれませんが、タイムリーに的を得た回答が得やすくなるとい
うことで、質問者さんにメリットのあることです。是非、考えてみてください。
で、注文をつけるばかりではなんですので、最初の質問に書いてあった「作成しようとして
いるテーブル(html)」を Table, TableRow, TableCell サーバーコントロールを使って作る
方法を書いておきます。
本来の目的を達成するためには、こんな面倒なことをする意味はないのでは?
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
// テーブル大枠
Table table = new Table();
table.Attributes.Add("border", "2");
table.Attributes.Add("rules", "all");
// 1 行目
TableRow row = new TableRow();
// 1 行目の 1 列目
TableCell cell = new TableCell();
Button button = new Button();
button.ID = "Button1";
button.Text = "修正";
button.Style.Add("width", "60px");
cell.Controls.Add(button);
Literal literal = new Literal();
literal.Text = " ";
cell.Controls.Add(literal);
row.Controls.Add(cell);
// 1 行目の 2 列目
cell = new TableCell();
Label label = new Label();
label.ID = "Label5";
label.Text = "名前";
cell.Controls.Add(label);
literal = new Literal();
literal.Text = "<br />";
cell.Controls.Add(literal);
label = new Label();
label.ID = "Label6";
label.Text = "名前";
cell.Controls.Add(label);
row.Controls.Add(cell);
// 1 行目の 3 列目
cell = new TableCell();
label = new Label();
label.ID = "Label7";
label.Text = "性別";
cell.Controls.Add(label);
literal = new Literal();
literal.Text = "<br />";
cell.Controls.Add(literal);
label = new Label();
label.ID = "Label8";
label.Text = "性別";
cell.Controls.Add(label);
row.Controls.Add(cell);
table.Rows.Add(row);
// 2 行目
row = new TableRow();
// 2 行目の 1 列目
cell = new TableCell();
label = new Label();
label.ID = "Label11";
label.Text = "コメント";
cell.Controls.Add(label);
row.Controls.Add(cell);
// 2 行目の 2 列目
cell = new TableCell();
cell.Attributes.Add("colspan", "2");
label = new Label();
label.ID = "Label12";
label.Text = "コメント";
cell.Controls.Add(label);
row.Controls.Add(cell);
table.Rows.Add(row);
PlaceHolder1.Controls.Add(table);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<table border="2" rules="all">
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="修正" style="width:60px;"/>
</td>
<td>
<asp:Label ID="Label5" runat="server" Text="名前"></asp:Label>
<br />
<asp:Label ID="Label6" runat="server" Text="名前"></asp:Label>
</td>
<td>
<asp:Label ID="Label7" runat="server" Text="性別"></asp:Label>
<br />
<asp:Label ID="Label8" runat="server" Text="性別"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label11" runat="server" Text="コメント"/>
</td>
<td colspan="2">
<asp:Label ID="Label12" runat="server" Text="コメント"></asp:Label>
</td>
</tr>
</table>
<br />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</form>
</body>
</html>
コピペすれば動きます。PlaceHolder1 に、その上の html 要素で作ったテーブルと全く同じもの
が生成されるはずです)
|