我有一个复合控件
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方法。