动态添加样式标签到ASP.Net网页

时间:2010-12-09 10:42:24

标签: c# asp.net html

我有以下代码,它将标签和gridview添加到asp.net页面:

  GridView grd = CreateGridView(kvp.Key.Text);
  Label l = new Label();
  l.Text = "some text";
  l.CssClass = "this has no effect";
  placeHolderResults.Controls.Add(l);
  placeHolderResults.Controls.Add(grd);

真的有两个问题:

  1. 由于页面将有多个且未知数量的Label + Grid对,我正在循环上面的代码,这是将控件添加到页面的最佳方法吗?

  2. 我不能标注这个标签?你怎么做呢?查看创建的HTML,标签结果是SPAN。

  3. 提前致谢,

    吉姆

4 个答案:

答案 0 :(得分:5)

l.CssClass只有将类名从样式中放入其中才会生效。例如:

<style type="text/css">
   .boldText {text-weight: bold}
</style>

// then the following should work
l.CssClass = "boldText";

// this will generate: <span class="boldText">your text</span>


如果您只想直接添加样式,则可以执行以下操作:

l.Attributes.Add("style", "color:Red;font-weight:bold;");
// this will generate <span style="color:Red;font-weight:bold">your text</span>

我希望这会有所帮助。玩得开心!


PS:
<asp:Literal>始终生成纯文本
<asp:Label>生成 <SPAN>
<asp:Panel>生成 <DIV>



2010年12月9日编辑 - 修复了基于Jim评论的示例代码中的错误

答案 1 :(得分:1)

将其更改为RED BOLD:

lblMyLabel.ForeColor = System.Drawing.ColorTranslator.FromHtml("#FF0000");
lblMyLabel.Style["font-weight"] = "bold";

将其更改为BLACK NORMAL:

lblMyLabel.ForeColor = System.Drawing.ColorTranslator.FromHtml("#000000");
lblMyLabel.Style["font-weight"] = "normal";

答案 2 :(得分:0)

使用

System.Web.UI.HtmlTextWriterStyle

和方法

public void Add(HtmlTextWriterStyle key, string value);

示例:

Label label = new Label 
{ 
    Text = "some text";
    CssClass = "yourClass"
};
label.Style.Add(HtmlTextWriterStyle.MarginRight, "12px");
parentControl.Controls.Add(label);

答案 3 :(得分:0)

类问题已经回答了,对于要更改的“span”标签,我建议使用对象 HtmlGenericControl 并将其属性 TagName 分配给所需的标签,例如:

HtmlGenericControl myControl = new HmtlGenericControl { TagName = "label"};