2

我试图弄清楚如何将 CSS 应用于用 C# 创建的标签。一切都编译并运行,只是似乎没有应用 CSS。CSS 位于站点母版页中链接到的文件中。CSS 文件中的所有其他内容都按应有的方式应用。

代码隐藏:

...
Label label = new Label();
SqlCommand command = new SqlCommand("SELECT Q_Text FROM HRA.dbo.Questions WHERE QID = 1");
command.Connection = connection;
reader = command.ExecuteReader();
reader.Read();
label.Text = reader["Q_Text"].ToString();
label.ID = "rblabel";
label.CssClass = "rblabel";
reader.Close();
holder.Controls.Add(label);
...

ASP:

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <asp:PlaceHolder ID="holder"  runat="server">

    </asp:PlaceHolder>
</asp:Content>

CSS:

.rblabel {
    text-align:left;
    padding-left: 2em;
    font-size: 4em;
}

编辑:在我的代码中添加了 HTML 和Control.Add()语句(忘记将其包含在我的复制/粘贴中)。该 HTML 是其内容的全部内容PlaceHolder

HTML:

<section class="content-wrapper main-content clear-fix">
    <span id="MainContent_rblabel" class="rblabel">TEST TEST TEST</span>
    <table id="MainContent_ctl00" class="radio">
    <tr>
        <td><input id="MainContent_ctl00_0" type="radio" name="ctl00$MainContent$ctl00"value="1" />
        <label for="MainContent_ctl00_0">Excellent</label></td>
    </tr><tr>
  <td><input id="MainContent_ctl00_1" type="radio" name="ctl00$MainContent$ctl00" value="1" />
         <label for="MainContent_ctl00_1">Good</label></td>
    </tr><tr>
   <td><input id="MainContent_ctl00_2" type="radio" name="ctl00$MainContent$ctl00"value="1" />
          <label for="MainContent_ctl00_2">Fair</label></td>
    </tr><tr>
   <td><input id="MainContent_ctl00_3" type="radio" name="ctl00$MainContent$ctl00"value="1" />
         <label for="MainContent_ctl00_3">Poor</label></td>
    </tr>
</table>
</section>
4

4 回答 4

1

基本上有两种可能:

  1. 您的标签可能不会在将 CLASS 属性设置为所需 CSS 类的情况下呈现。您可以通过查看呈现的 HTML 来验证这一点。(如果标签根本没有出现,您的代码表明您可能没有将其添加到其父级的 Controls 集合中。)

  2. 一切都正确呈现,但由于您的 CSS 或覆盖它的另一个样式表存在问题,它在您的浏览器中显示不正确。要对此进行调试,您需要使用 Firebug 或 IE 的开发人员工具。

祝你好运!

于 2012-10-24T17:01:02.807 回答
0

span 是一个内联元素,因此并非所有浏览器都支持内边距、宽度和高度。尝试将其设置为inline-block.

.rblabel {
    text-align:left;
    padding-left: 2em;
    font-size: 4em;
    display: inline-block;
}
于 2012-10-24T17:15:09.623 回答
0

CssClass 属性是正确的方法去http://www.w3schools.com/aspnet/prop_webcontrol_style_cssclass.asp

您遗漏了将标签添加到页面/容器等的代码,这可能是错误所在。

显示页面的 HTML 源输出以查看您生成的标签是否实际包含值为“rblabel”的 CLASS 属性也会有所帮助。

如果情况变得更糟,请在 HTML 中使用 Literal 而不是 Label 填充。

于 2012-10-24T16:57:47.007 回答
0

看起来您实际上并未将标签添加到您希望它出现的位置。尝试类似:

holder.Controls.Add(label);

在您的代码隐藏中。

于 2012-10-24T16:58:16.070 回答