在ASP.NET中,如何动态添加格式标记?

时间:2009-11-05 21:17:20

标签: asp.net controls

我在ASP.NET页面上有以下内容:

<li><asp:Hyperlink id="myHyperlink" runat="server">My Text</asp:Hyperlink></li>

有时在代码中,我需要能够在超链接周围动态添加STRONG标记,使其看起来像这样:

<li><strong><asp:Hyperlink id="myHyperlink" runat="server">My Text</asp:Hyperlink></strong></li>

在代码中有一些优雅的方法吗?我知道我可以使用Literals完成它,但我只是想知道是否有一些我不知道的特殊方法允许你插入这样的标签。

谢谢, 科里

5 个答案:

答案 0 :(得分:3)

如果这是你经常需要做的事情,我会创建一个新的服务器控件并继承超链接控件。为Strong添加属性,并覆盖render方法以在strong = true时添加标记。注意 - 这不是来自IDE,因此语法可能不完美

Public Class StrongTextBox
        Inherits Hyperlink

    Public Overrides Sub RenderEndTag(ByVal writer As System.Web.UI.HtmlTextWriter)

        MyBase.RenderEndTag(writer)
        If Strong Then
            writer.Write("</strong>")
        End If

    End Sub


    Public Overrides Sub RenderBeginTag(ByVal writer As System.Web.UI.HtmlTextWriter)

        If Strong Then
            writer.Write("<strong>")
        End If
        MyBase.RenderEndTag(writer)

    End Sub

private mStrong as Boolean
Public Property Strong as Boolean

   Get
                Return mStrong 
   End Get

   Set(ByVal value As Boolean)
                mStrong  = value
   End Set

End Property

答案 1 :(得分:1)

如果您将li标签更改为runat服务器,请执行以下操作:

<li runat="server" id="myLi"><asp:Hyperlink id="myHyperlink" runat="server">My Text</asp:Hyperlink></li>

你可以像这样添加强力标签:

var strongTag = new System.Web.UI.HtmlControls.HtmlGenericControl("strong");

Page.Controls.Remove(myHyperlink);

myLi.Controls.Add(strongTag);
strongTag.Controls.Add(myHyperlink);

正如其他大多数人所指出的那样,不建议使用STRONG。

答案 2 :(得分:0)

如果STRONG标记是一个要求(无论出于何种原因),您可以实现从HyperLink派生的控件,该控件根据属性呈现外部。

答案 3 :(得分:0)

myHyperlink.Bold =真

答案 4 :(得分:0)

Hyperlink元素具有Font-Bold属性,与添加强标记的功能相同。