0

我在后面的代码中动态添加了一个 HTML 表。

我可以给整个表格一个边框。

我怎样才能为每一行做到这一点?我想在每一行下添加一个边框。

如何在运行时向单元格添加超链接?

我试过的是

tdr.Width = "100px";
tdr.Attributes.Add("class", "float-left");

row = new HtmlTableRow(); 
cell = new HtmlTableCell();
cell.InnerText = doc;
row.Cells.Add(cell);
tdr.Rows.Add(row);

row = new HtmlTableRow(); 
cell = new HtmlTableCell();
cell.InnerText = "No Timming";
row.Cells.Add(cell);
tdr.Rows.Add(row);

row = new HtmlTableRow(); 
cell = new HtmlTableCell();
cell.InnerText = weekday[i];
row.Cells.Add(cell);
tdr.Rows.Add(row);

还有我的 CSS:

<style type="text/css">
    .float-left
    {
        float:left;
        border-style:solid;
        border-width:2px;
        border-color:Black;
    }
</style>
4

3 回答 3

2

对于您问题的第一部分,您可以通过添加一个简单的 css 规则来添加边框而不更改标记生成:

tr {
  border-bottom: solid 1px black;
} 

通过about.comw3c 学校都有关于样式表的概述

请注意,您还需要border-collapse: collapse;在表格上设置 css 属性。

我已经为你举了一个例子 jsFiddle

您可以将 CSS 规则放在您的 CSS 部分(注意我还添加了border-collapse):

<style type="text/css">

    tr {
      border-bottom: solid 1px black;
    } 

    .float-left{
        float:left;
        border-style:solid;
        border-width:2px;
        border-color:Black;
        border-collapse: collapse;
    }

</style>

您还可以考虑删除 float-left css 属性并更改.float-lefttable 进一步简化您的代码。

对于您问题的第二部分:

并在运行时为表中的每个值添加一个超链接

您可以简单地使用HtmlAnchorClass

实际上,一个简单的例子是:

HtmlAnchor htmlanchor = new HtmlAnchor();
htmlanchor.HRef = "http://www.linkurl.com";
htmlanchor.InnerText = "My Link Text";
//Add it to a cell
cell.Controls.Add(htmlanchor);

这将为您的单元格添加一个超链接。

您可能还需要考虑使用ASP Repeater 控件DataGrid控件,因为它们中的每一个都为您提供了模板化标记的选项。

于 2013-03-20T13:05:18.087 回答
1

你需要在你的 TR (行)上添加一个 CSS

或像这样的内联边框:

 row.Attributes.Add("border-bottom", "solid red 1px");
于 2013-03-20T12:53:33.117 回答
0

@Moondust 是正确的,但他缺少 Style 标签,这就是没有效果的原因。此外,您不能在<tr>元素上设置样式。您必须将其设置在<td>.

IE

这里的<tr>风格什么都不做。确实<td>

<tr style="border-color:black;border-style:solid;border-width:thin;">
  <td width="100px" style="border-bottom: black thin solid;">Boarder</td>
  <td style="background-color:#FFFF00;" width="10px"></td>
</tr>

为了实现底部边框,至少在单元格中,它是......

row.Cells[0].Attributes.Add("style", "border-bottom: black thin solid;");

因此,要连续执行此操作,您必须为每个单元格执行此操作。对不起

于 2015-12-14T03:28:20.157 回答