【问题标题】:Click on FontAwesome icon cause Full Postback in asp.net单击 FontAwesome 图标会导致 asp.net 中的完整回发
【发布时间】:2019-08-09 21:44:32
【问题描述】:

我在 Asp.Net 网络表单中有一些页面,带有一些更新面板(带有UpdateMode="Conditional"),其中有一个 asp:LinkBut​​ton,里面有一个像这样的字体图标

<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,我还有数千个链接按钮,我无法全部覆盖它们。 有什么建议吗?

最好的问候

更新:

这是页面:

<%@ 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>

【问题讨论】:

  • 您不需要处理事件传播。使用return false() 为LinkBut​​ton 添加OnClientClick
  • @Sagar 这将不起作用,因为在链接按钮上带有OnClientClick="return false;" 的任何情况下它都不会启动服务器事件
  • 能否请您出示脚本管理器的代码?
  • @Sagar 我编辑了帖子

标签: asp.net webforms font-awesome updatepanel


【解决方案1】:

将名为 UpdateMode 的更新面板属性更改为 Conditional

例子:

 <asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server">

更新:

还要确保页面指令ClientIDModeAutoID 示例:

<%@ Page Title="" ClientIDMode="AutoID" Language="C#"%>

更新:

似乎ClientIDMode="Static" 无法使用更新面板,请检查修复: Possible solution to UpdatePanel and ClientIDMode="Static"

【讨论】:

  • 看看更新的答案,让我知道您的反馈。
  • ClientIDMode="AutoID" 是强制性的吗?我将整个项目设置为ClientIDMode="Static"
  • 这可能会导致问题,请尝试删除 ClientIDMode="Static" 如果它工作你需要找到更好的解决方案。如果您发布代码,我会提供更多帮助。
  • 与 ClientIDMode="AutoID" 它工作...该死的。我用整个页面编辑了主要帖子,你能帮我吗?我无法使用 AutoID 编辑整个项目
  • 似乎 ClientIDMode="Static" 不适用于更新面板。看看这个修复stackoverflow.com/questions/13744513/…
猜你喜欢
  • 2018-12-15
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
相关资源
最近更新 更多