【问题标题】:How to add CSS class to asp.net from code behind [closed]如何从后面的代码中将 CSS 类添加到 asp.net [关闭]
【发布时间】:2012-08-25 03:16:19
【问题描述】:

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

我有一个<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 想到这一点。经过今天这样漫长的一天,我可能会犯初学者的错误。

再次感谢您

亲切的问候

艾登

【问题讨论】:

  • 你试过row.CssClass="rowA";
  • 当生成的html输出行有class时,则html文件中没有链接css文件,或者类名有错别字。
  • 确定没有应用?也许它被另一个规则覆盖(例如在td's)?据我所知,您提供的信息应该可以工作。您是否曾在任何浏览器中使用过 Firebug 或开发工具栏?您可以在这些工具中看到应用了哪些规则以及覆盖了哪些规则。
  • 我同意@Jeroen,这对我来说似乎很好。 CSS 区分大小写,但 HTML 不区分大小写。什么意味着您的标记看起来不错。
  • 您在页面顶部声明的 HTML 版本是什么?

标签: c# asp.net html css


【解决方案1】:

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

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

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

【讨论】:

  • 是的... html 不区分大小写
  • 我把must这个词去掉了should。 @AidenStrydom 根据您的评论“样式表的链接如何被删除,我不知道如何删除” - 这不意味着我的回答是正确的吗?
【解决方案2】:

当生成的html输出的行有class时,那么就是html文件中没有链接css文件,或者类名有错别字。

【讨论】:

    【解决方案3】:

    您的代码没有任何问题。是你的 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%;
    }
    

    【讨论】:

    • 如上面问题本身所述,如果是这种情况,我无法看到内容,但我可以。如果我手动添加样式,它可以正常工作 - 但仍然很有趣
    猜你喜欢
    • 2012-03-15
    • 2014-09-29
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2013-03-08
    • 1970-01-01
    • 2010-11-15
    相关资源
    最近更新 更多