2012-08-30 32 views
4

这真是令人沮丧,有一个搜索网站打:如何添加CSS类从代码到ASP.NET背后

我有一个<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是正确的,因为如果我手动添加它,它正确地应用它。

编辑

对于所有谁在这方面的协助,非常感谢。不幸的是出现了一些问题,并且外部样式表的链接被删除了。对斯文的赞扬是为了这个想法。经过漫长的一天,比如今天我可以犯下初学者的错误。

再次感谢你

亲切的问候

艾登

+2

您是否尝试过'row.CssClass =“rowA”;' – harry180

+2

当该行的生成html输出有类时,那么在html文件中没有链接css文件,或者您在类中存在拼写错误名称。 –

+1

你确定它没有被应用?也许它被另一个规则覆盖了(例如'td')?据我所知,你提供的信息应该可以工作。你有没有在任何浏览器中使用* Firebug *或开发工具栏?您可以在这些工具中看到应用了哪些规则以及什么被覆盖。 – Jeroen

回答

5

当行的生成HTML输出有类,再有就是在HTML文件中未链接的css文件,或者你有类名称的拼写错误。

7

class属性应该是小写(XHTML):

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

另外,还要确保你包括在CSS文件页面呈现您的表格。

+0

是的...... html不区分大小写 –

+0

我已经删除了*必须*要*应*。 @AidenStrydom根据你的评论“*一些如何链接到样式表被删除,我不知道如何*” - 这不是说我的答案是正确的吗? – James

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%; 
} 
+0

如上面在问题本身中所述,如果那样的话我无法看到内容,但是我确实......如果我手动添加样式,它可以正常工作 - 但有趣的是, –