[英]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>
基本上有两种可能性:
标签的CLASS属性设置为所需的CSS类时,可能无法呈现。 您可以通过查看呈现的HTML进行验证。 (如果标签根本没有出现,则您的代码表明您可能未将其添加到其父级的Controls集合中。)
一切都可以正确渲染,但是由于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.