繁体   English   中英

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

[英]Assigning CSS to dynamically created Label in C#

我试图弄清楚如何将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()语句(忘了在我的复制/姿势中包含它)。 此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>

基本上有两种可能性:

  1. 标签的CLASS属性设置为所需的CSS类时,可能无法呈现。 您可以通过查看呈现的HTML进行验证。 (如果标签根本没有出现,则您的代码表明您可能未将其添加到其父级的Controls集合中。)

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

祝好运!

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

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

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

如果情况变得更糟,请在HTML中使用文字代替标签。

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

holder.Controls.Add(label);

在您的后台代码中。

跨度是一个内联元素,因此并非总是在所有浏览器中都采用padding,width和height。 尝试将其设置为inline-block

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM