上段时间做了一个显示调查结果的页面,由于查询的时候数据条数不固定,所以无法在前台asp页面画表。查了些资
料,找到了后台画表的方法。现在做一个小的DEMO给大家分享。
protected void Page_Load(object sender, EventArgs e)
{
//创建一个表格对象
HtmlTable ht = new HtmlTable();
//设置表格属性
ht.BorderColor = "Green";
ht.CellPadding = 10;
ht.Width = "100%";
ht.Align = "center";
//这里我们可以套一个循环,来循环添加行。
for (int i = 0; i < 5; i++)
{
//创建一个行对象
HtmlTableRow qr = new HtmlTableRow();
//列
HtmlTableCell qc = new HtmlTableCell();
//合并单元格
qc.ColSpan = 2;
qc.BorderColor = "Green";
//实例化一个标签
Label ql = new Label();
ql.Text = (i + 1) + ". " + "我是第" + (i + 1) + "个问题";
//向列中加入这个标签
qc.Controls.Add(ql);
//行加入列
qr.Cells.Add(qc);
//表格加入行
ht.Rows.Add(qr);
//Pa是asp页面中的一个panel,用来放创建的表格,可以改为其他容器
Pa.Controls.Add(ht);
HtmlTableRow ar = new HtmlTableRow();
HtmlTableCell ac = new HtmlTableCell();
ac.BorderColor = "Green";
ac.Width = "50%";
HtmlTableCell ac1 = new HtmlTableCell();
ac1.BorderColor = "Green";
//用循环添加每个问题的答案
for (int j = 0; j < 3; j++)
{
//当奇数答案时
if (j % 2 == 0)
{
Label al = new Label();
al.Text = Convert.ToChar(j + 97) + ". " + "答案 " + Convert.ToChar(j + 97) + "<br />";
//向列中加入这个标签
ac.Controls.Add(al);
//行加入列,此处之所以用Insert是为了控制插入的位置
ar.Cells.Insert(0, ac);
//表格加入行
ht.Rows.Add(ar);
Pa.Controls.Add(ht);
}
//当偶数答案时
else
{
Label al = new Label();
al.Text = Convert.ToChar(j + 97) + ". " + "答案 " + Convert.ToChar(j + 97) + "<br />";
//向列中加入这个标签
ac1.Controls.Add(al);
ac1.VAlign = "top";
//行加入列
ar.Cells.Insert(1, ac1);
// ar.Cells.Add(ac1);
//表格加入行
ht.Rows.Add(ar);
Pa.Controls.Add(ht);
}
}
}
}
因为是第一次做这个东西,所以可能做的不是太好,请各位高手不要鄙视。