如何从代码隐藏的CSS.net中添加CSS类

时间:2012-08-30 11:43:00

标签: c# asp.net html css

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

我有<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想到这一点。经过漫长的一天,比如今天我可以犯初学错误。

再次感谢你

亲切的问候

艾登

3 个答案:

答案 0 :(得分:7)

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

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

另外,请确保在您的表格中包含CSS文件。

答案 1 :(得分:5)

当行生成的html输出有类时,html文件中没有链接的css文件,或者你的类名中有拼写错误。

答案 2 :(得分:1)

您的代码背后没有任何问题。你的CSS错了。

参考W3 docs on tables

  

表的水平布局不依赖于内容   细胞;它只取决于桌子的宽度,宽度   列,边框或单元格间距。

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

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

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

.myTable{
   width:80%;
}