将CSS分配给C#中动态创建的Label

时间:2012-10-24 16:52:15

标签: c# asp.net css

我正在试图弄清楚如何将CSS应用于在C#中创建的Label。一切都编译并运行,它似乎没有应用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()语句(忘了在我的副本/ pase中包含它)。这个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 个答案:

答案 0 :(得分:1)

基本上有两种可能性:

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

  2. 一切正常,但由于您的CSS或其他样式表覆盖它的某些问题,它在您的浏览器中无法正确显示。要对此进行调试,您需要使用Firebug或IE的开发人员工具。

  3. 祝你好运!

答案 1 :(得分:0)

CssClass属性是http://www.w3schools.com/aspnet/prop_webcontrol_style_cssclass.asp

的正确方法

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

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

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

答案 2 :(得分:0)

看起来您实际上并未将标签添加到要显示的位置。尝试类似:

holder.Controls.Add(label);

在您的代码隐藏中。

答案 3 :(得分:0)

span是一个内联元素,因此在所有浏览器中并不总是遵循填充,宽度和高度。尝试将其设置为inline-block

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