4

这真是令人沮丧,并且搜索了十几个站点:

我有一个<asp:table id="questionsTable" runat="server">动态添加行和列的对象。我正在尝试将预定义的 Cssclass 添加到这些新创建的行和列,但无济于事。

行和列的设置代码:

TableRow row = new TableRow();
TableCell cell1 = new TableCell();
TableCell cell2 = new TableCell();
TableCell cell3 = new TableCell();
TableCell cell4 = new TableCell();
TableCell cell5 = new TableCell();

我知道我可以这样做:

row.Style.Add("width", "80%");
row.Style.Add("text-align", "left");

cell1.Style.Add("width", "10px");
cell2.Style.Add("width", "auto");
cell3.Style.Add("width", "75px");
cell4.Style.Add("width", "75px");
cell5.Style.Add("width", "75px");

它可以工作......但它使代码隐藏文件变得混乱。

所以我看到了这个:

row.Attributes.Add("Class", "rowA");

//CSS - in StyleSheet.css
.rowA
{
    width:80%;
    text-align:center;
    background-color:#FCF6CF;
}

但它似乎对我不起作用......

但奇怪的是,如果我查看生成的标记源,我会得到这个

    </tr><tr Class="rowA">

以上内容是从渲染页面复制的 - 但尚未应用 Css...我知道 css 是正确的,因为如果我手动添加它,它会正确应用它。

编辑

非常感谢所有为此提供帮助的人。不幸的是,出了点问题,指向外部样式表的链接被删除了。感谢 Sven 想到这一点。经过像今天这样漫长的一天后,我可能会犯初学者的错误。

再一次感谢你

亲切的问候

艾登

4

3 回答 3

7

您的class属性应为小写 (XHTML):

row.Attributes.Add("class", "rowA");

还要确保在呈现表格的页面中包含 CSS 文件。

于 2012-08-30T11:47:05.487 回答
5

When the generated html output of the row has the class, then there is the css file not linked in the html file, or you have a typo in the class name.

于 2012-08-30T12:16:29.890 回答
1

您的代码没有任何问题。它是你的 CSS 是错误的。

请参阅表格上的 W3 文档

表格的水平布局不依赖于单元格的内容;它仅取决于表格的宽度、列的宽度以及边框或单元格间距。

如果您希望行的宽度为 80%,则应将表格宽度设置为 80%。像这样:

<asp:table id="questionsTable" runat="server" class="myTable">

.rowA
{
   text-align:center;
   background-color:#FCF6CF;
}

.myTable{
   width:80%;
}
于 2012-08-30T11:48:54.320 回答