Нажмите на иконку FontAwesome, чтобы вызвать полную обратную передачу в asp.net - PullRequest
0 голосов
/ 19 марта 2019

У меня есть несколько страниц в веб-формах Asp.Net с некоторой панелью обновлений (с UpdateMode="Conditional") и внутри нее asp: LinkButton с таким потрясающим значком, как этот

<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();
    }
});

Этоработает для кнопки HTML с тегом runat = "server", но не работает с 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>

1 Ответ

0 голосов
/ 19 марта 2019

Измените атрибут панели обновлений с именем UpdateMode на Conditional

Пример:

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

Обновление:

Также убедитесь, что директива страницыClientIDMode is AutoID Пример:

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

Обновление:

Похоже, что ClientIDMode="Static" не работает с панелью обновления, проверьте исправление: Возможнорешение для UpdatePanel и ClientIDMode = "Static"

...