不用模版能做出如下多表头效果,我愿出300分

v60 2003-02-28 05:59:42
效果如下:
分不够可再发
<table width="382" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="115" rowspan="3">字段2</td>
<td height="41" colspan="4" valign="top">类型</td>
</tr>
<tr>
<td height="42" colspan="2" valign="top">类型1</td>
<td colspan="2" valign="top">类型2</td>
</tr>
<tr>
<td width="52" height="75" valign="top">字段2</td>
<td width="74" valign="top">字段3</td>
<td width="66" valign="top">字段4</td>
<td width="75" valign="top">字段5</td>
</tr>
</table>
...全文
22 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
v60 2003-03-01
  • 打赏
  • 举报
回复
相信思归,加分了
gOODiDEA 2003-03-01
  • 打赏
  • 举报
回复
不错!
saucer 2003-03-01
  • 打赏
  • 举报
回复
为什么不能用模版? 如果你坚持的话,总归有方法的,虽然是很笨的办法,譬如

<%@ Import Namespace="System.Data" %>
<script language="C#" runat="server">
DataTable LoadData()
{
DataTable dt = new DataTable();
for (int i=1; i <= 5; i++)
dt.Columns.Add("Column"+i.ToString());

for (int i=0; i < 10; i++)
{
DataRow dr = dt.NewRow();
for (int j=0; j <5; j++)
dr[j] = "字段"+(j+1).ToString();
dt.Rows.Add(dr);
}

return dt;
}

Table CreateTable(DataTable dt)
{
System.Diagnostics.Debug.Assert(dt.Columns.Count >=5);

Table t = new Table();
t.Width = Unit.Pixel(382);
t.CellPadding = 0;
t.CellSpacing = 0;
t.BorderWidth = Unit.Pixel(2);
t.GridLines = GridLines.Both;


foreach (DataRow dr in dt.Rows)
{
TableRow tr = new TableRow();

TableCell tc = new TableCell();
tc.Width = Unit.Pixel(115);
tc.RowSpan = 3;
tc.Text = dr[0].ToString();
tr.Cells.Add(tc);

tc = new TableCell();
tc.Height = Unit.Pixel(41);
tc.ColumnSpan = 4;
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = "类型";
tr.Cells.Add(tc);

t.Rows.Add(tr);

tr = new TableRow();

tc = new TableCell();
tc.Height = Unit.Pixel(42);
tc.ColumnSpan = 2;
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = "类型1";
tr.Cells.Add(tc);

tc = new TableCell();
tc.ColumnSpan = 4;
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = "类型2";
tr.Cells.Add(tc);

t.Rows.Add(tr);

tr = new TableRow();

tc = new TableCell();
tc.Width = Unit.Pixel(52);
tc.Height = Unit.Pixel(75);
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = dr[1].ToString();
tr.Cells.Add(tc);


tc = new TableCell();
tc.Width = Unit.Pixel(74);
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = dr[2].ToString();
tr.Cells.Add(tc);

tc = new TableCell();
tc.Width = Unit.Pixel(66);
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = dr[3].ToString();
tr.Cells.Add(tc);

tc = new TableCell();
tc.Width = Unit.Pixel(75);
tc.VerticalAlign = VerticalAlign.Top;
tc.Text = dr[4].ToString();
tr.Cells.Add(tc);

t.Rows.Add(tr);


}

return t;
}

void Page_Load(Object o, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = LoadData();
Table t = CreateTable(dt);
form1.Controls.Add(t);
}
}
</script>
<form runat="server" id="form1">
</form>
xxcw 2003-03-01
  • 打赏
  • 举报
回复
这个贴子可以解决
http://expert.csdn.net/Expert/topic/1469/1469433.xml?temp=.7259943
chenbinghui 2003-03-01
  • 打赏
  • 举报
回复
使用repeater应该就可以吧,
chenbinghui 2003-02-28
  • 打赏
  • 举报
回复
看一下这个 http://www.fawcette.com/china/XmlFile.aspx?ID=237
根据这个方法肯定可以作出来
v60 2003-02-28
  • 打赏
  • 举报
回复
能做个例子吗
nizhigang2000 2003-02-28
  • 打赏
  • 举报
回复
你可以将模板生成的代码拿来研究一下,其实原理是一样的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧