Класс Css переходит в исходное состояние при запуске панели обновления asp.net - PullRequest
0 голосов
/ 05 марта 2019

Привет! У меня есть элемент управления поиском, который отображается только при нажатии на тег привязки для отображения элемента поиска.В то же время я меняю значок фильтра, размещенный внутри тега привязки, чтобы обновить значок, чтобы закрыть значок.Я добился этого с помощью метода toggleClass.Моя проблема заключается в том, что когда панель обновления обновляет свое содержимое или происходит обратная передача, значок сбрасывается на первый значок фильтра, что не соответствует логике его собственного примечания о существовании, что я добавил все эти элементы управления в панель обновления asp.net.Вот мой фрагмент кода.

 <asp:UpdatePanel runat="server" ID="Up1">
        <ContentTemplate>

            <div class="row">
                <div class="col-lg-4">
                </div>
                <div class="col-lg-4">
                </div>
                <div class="col-lg-4 text-right">
                    <a id="SearchControl" href="#"><i id="SearchIcon" class="fa fa-filter"></i>&nbsp;Search</a>
                </div>
            </div>
            <div id="filterControlDiv" class="row">
                <div class="col-lg-12 bg-secondary" style="height: 150px;">
                </div>

            </div>
            <div class="row">
                <div class="col-lg-12">
                    <asp:GridView runat="server" ID="grdAirportList" AllowPaging="true" PageSize="5" AutoGenerateColumns="true">
                    </asp:GridView>
                </div>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>

и используемый скрипт:

 [![<script>
        $(function () {
            InitialSearch();

            $('#SearchControl').click(function ()
            {
                $('#filterControlDiv').slideToggle();
                $('#SearchIcon').toggleClass("fa-filter fa-times");
            });
        });
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function () {
            $('#SearchControl').click(function () {
                $("#filterControlDiv").slideToggle();
                $('#SearchIcon').toggleClass("fa-filter fa-times");
            });
        }); 
        function InitialSearch() {
            $('#filterControlDiv').hide();
        }
    </script>][1]][1]

Заранее спасибо.enter image description here

enter image description here

1 Ответ

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

Так как это только изменение на стороне клиента, сервер не распознает его и возвращает обратно к оригиналу.Вы должны либо изменить это со стороны сервера, либо переместить деталь за пределы панели обновления.Я предполагаю, что вы используете панель обновления для вида сетки, чтобы вы могли просто сделать.

<asp:UpdatePanel runat="server" ID="Up1">
   <ContentTemplate>
       <div class="row">
         <div class="col-lg-12">
            <asp:GridView runat="server" ID="grdAirportList" AllowPaging="true" PageSize="5" AutoGenerateColumns="true">
             </asp:GridView>
         </div>
      </div>
   </ContentTemplate>
</asp:UpdatePanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...