单击 FontAwesome 图标导致 asp.net 中的完整回发
Click on FontAwesome icon cause Full Postback in asp.net
我在 Asp.Net 网络表单中有一些页面带有一些更新面板(带有 UpdateMode="Conditional"
)并且在其中有一个 asp:LinkButton,里面有一个像这样的 fontawesome 图标
<asp:LinkButton ID="btn" runat="server" CssClass="btn btn-success btn-responsive">
<span aria-hidden="true" class="fa fa-user-circle"></span> Foo
</asp:LinkButton>
当我准确地单击该图标时,页面会按照我的预期进行完整回发和非部分回发
搜索我知道问题可能是事件传播,所以我创建了一个这样的脚本:
$('.fa').click(function (event) {
event.stopPropagation();
if (!(this.parentNode === null)) {
this.parentNode.click();
}
});
这适用于带有 runat="server" 标签的 html 按钮,但不适用于 asp:linkbutton,我还有上千个 link 按钮,但我不能覆盖它们。
有什么建议吗?
此致
更新:
这是页面:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Iscr.aspx.vb" Inherits="Iscr" %>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="UpdatePanelIscr" UpdateMode="Conditional" >
<ContentTemplate>
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
load();
loadScript();
});
$(document).ready(function () {
loadScript();
});
function loadScript() {
}
</script>
...form....
<div class="floatingButtonBar">
<asp:LinkButton ID="btn" runat="server" CssClass="btn btn-success btn-responsive">
<span aria-hidden="true" class="fa fa-user-circle"></span> Foo
</asp:LinkButton>
</div>
</ContentTemplate>
</asp:UpdatePanel>
将名为 UpdateMode
的更新面板属性更改为 Conditional
示例:
<asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server">
更新:
还要确保页面指令 ClientIDMode
是 AutoID
示例:
<%@ Page Title="" ClientIDMode="AutoID" Language="C#"%>
更新:
似乎 ClientIDMode="Static"
无法使用更新面板,请检查修复:
Possible solution to UpdatePanel and ClientIDMode="Static"
我在 Asp.Net 网络表单中有一些页面带有一些更新面板(带有 UpdateMode="Conditional"
)并且在其中有一个 asp:LinkButton,里面有一个像这样的 fontawesome 图标
<asp:LinkButton ID="btn" runat="server" CssClass="btn btn-success btn-responsive">
<span aria-hidden="true" class="fa fa-user-circle"></span> Foo
</asp:LinkButton>
当我准确地单击该图标时,页面会按照我的预期进行完整回发和非部分回发
搜索我知道问题可能是事件传播,所以我创建了一个这样的脚本:
$('.fa').click(function (event) {
event.stopPropagation();
if (!(this.parentNode === null)) {
this.parentNode.click();
}
});
这适用于带有 runat="server" 标签的 html 按钮,但不适用于 asp:linkbutton,我还有上千个 link 按钮,但我不能覆盖它们。 有什么建议吗?
此致
更新:
这是页面:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Iscr.aspx.vb" Inherits="Iscr" %>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="UpdatePanelIscr" UpdateMode="Conditional" >
<ContentTemplate>
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function () {
load();
loadScript();
});
$(document).ready(function () {
loadScript();
});
function loadScript() {
}
</script>
...form....
<div class="floatingButtonBar">
<asp:LinkButton ID="btn" runat="server" CssClass="btn btn-success btn-responsive">
<span aria-hidden="true" class="fa fa-user-circle"></span> Foo
</asp:LinkButton>
</div>
</ContentTemplate>
</asp:UpdatePanel>
将名为 UpdateMode
的更新面板属性更改为 Conditional
示例:
<asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server">
更新:
还要确保页面指令 ClientIDMode
是 AutoID
示例:
<%@ Page Title="" ClientIDMode="AutoID" Language="C#"%>
更新:
似乎 ClientIDMode="Static"
无法使用更新面板,请检查修复:
Possible solution to UpdatePanel and ClientIDMode="Static"