用TABLE控件动态生成表格

therachy 2010-10-25 02:34:48
我想把表格生成像下面那样的



<table style="width:200px; height:200px; border-color:Red; border-collapse:collapse;">
<tr>
<td colspan="2" rowspan="2"></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td rowspan="2"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td rowspan="2"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>


下面是我.CS文件中生成的代码

String[] HH = { "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "01", "02", "03", "04", "05", "06", "07" };
String[] SS = { "00", "15", "30", "45" };

String[] Week = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };



protected void ShowTable()
{
TableRow tr;
TableCell tc;

int Count_Row_Sum = HH.Length * SS.Length; //获得行数
int Count_Col_Sum = Week.Length + 1; //获得列数

for (int Row_Count = 0; Row_Count < Count_Row_Sum + 1; Row_Count++)
{
tr = new TableRow();
//行数
#region if
if (Row_Count == 0)
{
//第一行标题
for (int Col_Count = 0; Col_Count < Count_Col_Sum; Col_Count++)
{
//列数
tc = new TableCell();
if (Col_Count >= 1)
{
//第一列
tc.Text = Week[Col_Count - 1];
}
else if (Col_Count == 0)
{
//第一行,第一列,跨2列4行
tc.ColumnSpan = 2;
}
tc.BackColor = Color.Brown;
tr.Cells.Add(tc);
}
}
else
{
#endregion
int c = (Row_Count - 1) / 4; //获取小时的数组的编号
int x = (Row_Count - 1) % 4; //获取分钟的数组的编号
//内容
if (x == 0)
{
for (int Col_Count = 0; Col_Count < Count_Col_Sum + 1; Col_Count++)
{
tc = new TableCell();
if (Col_Count == 0)
{
//第一列跨4行
tc.RowSpan = 4;
tc.Text = HH[c];
}
else if (Col_Count == 1)
{

//第二列不跨行
tc.Text = SS[x];
}
tr.Cells.Add(tc);
}
}
else
{
for (int Col_Count = 0; Col_Count < Count_Col_Sum; Col_Count++)
{
tc = new TableCell();
tc.Text = Row_Count + "-" + Col_Count;

if (Col_Count == 0)
{
//第二列不跨行
tc.Text = SS[x];
}

if (Row_Count % 2 == 0)
{
tr.BackColor = Color.Crimson;

}
else
{
tr.BackColor = Color.DarkViolet;
}
tr.Cells.Add(tc);
}
}
}
list.Controls.Add(tr);
}
}



总是实现不了上面的哪个格式,望高手帮我看下是哪里错了
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
phil999 2010-10-25
  • 打赏
  • 举报
回复
不用aspx,自己写干嘛
wuyq11 2010-10-25
  • 打赏
  • 举报
回复
stringbuilder构成table
<%=str%>
或使用HtmlTable
zjx198934 2010-10-25
  • 打赏
  • 举报
回复
耐心调试下!
cpp2017 2010-10-25
  • 打赏
  • 举报
回复
,每次跨行,第2行就会多出一个单元格
==>跨行后,下面一行应该减少相应的单元格
therachy 2010-10-25
  • 打赏
  • 举报
回复
我实在想不出来了,每次跨行,第2行就会多出一个单元格
Rock870210 2010-10-25
  • 打赏
  • 举报
回复
细节问题,楼主还是自己慢慢调试吧。或断点跟踪数据、或查看分析生成的HTML源码
cjh200102 2010-10-25
  • 打赏
  • 举报
回复
楼主可以一步步改,先把有疑问的地去掉,看问题到底出在那。
cjh200102 2010-10-25
  • 打赏
  • 举报
回复
楼上简洁明了。。
symbol_bc 2010-10-25
  • 打赏
  • 举报
回复
看你生成的html,就知道了
cpp2017 2010-10-25
  • 打赏
  • 举报
回复
要求有,代码也有了,无非就是RowSpan和ColumnSpan的问题了,这里面没有技术问题.只有细节

62,041

社区成员

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

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

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

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