代码之家  ›  专栏  ›  技术社区  ›  user1447679

UpdatePanel中的LinkButton工作正常,直到我尝试使用html标记作为文本

  •  0
  • user1447679  · 技术社区  · 6 年前

    我有一个复合控件 LinkButton 动态的。此控件位于 UpdatePanel

    如果我设置 链接按钮

    但是,如果我试图使用 html格式 标记(即。 <span class="fa fa-edit"></span> )作为文本,它仍然可以工作,但会导致整页刷新。

    这是令人难以置信的困惑,我只是不明白为什么html标记导致回发,但文本不是。

    Public Class LinkBase
        Inherits CompositeControl
        Implements INamingContainer
    
        Private ReadOnly _linkButton As LinkButton = New LinkButton()
    
    
        Protected Overrides Sub CreateChildControls()
            Controls.Clear()
            '_linkButton.Text = "Click here to edit" <-- works
            _linkButton.Text = "<span class='fa fa-edit'></span>" <-- causes refresh
            Controls.Add(_linkButton)
    
            MyBase.CreateChildControls()
        End Sub
    

    结束类

    更新

    我的自定义控件如下所示:

    <custom:EditLink Text="Edit Me" />
    

    呈现为:

    <a href="javascript:__doPostBack('shortened_ListView$l00','')">
        Edit Me
    </a>
    

    如果我使用:

    <custom:EditLink Text='<span class="fa fa-edit"></span>' />
    

    它呈现为:

    <a href="javascript:__doPostBack('shortened_ListView$l00','')">
        <span class="fa fa-edit"></span>
    </a>
    

    Text 属性是默认的内部属性,因此可以直接设置它(即文本)或使用内部内容。现在我直接设置它的原因是因为在我的 <custom:EditLink> 为其他目的服务的。

    但同样,当我使用html时,它会导致页面刷新。当我不这样做时,比如“编辑我”,它使用更新面板的ajax方法。

    0 回复  |  直到 6 年前