Martin Lauritsen Ответов: 1

Проблема очистки файлов cookie с помощью аккордеонов


Привет ребята

у меня есть truoble deleting и cookie, которые я устанавливаю в jquery, у меня есть и динамический аккордеон с ретранслятором asp, и я использую Jquery cookie для запоминания состояния на задних столбцах.

Но я, когда нажимаю кнопку "Назад", хочу очистить этот файл cookie. Я пытаюсь использовать C# и Jquery, но независимо от того, что это такое, файл cookie сохраняется. i The W3 schools and microsoft ways to remove cookies, but it's ignorede

Я не самый лучший парень из Jquery, так что, возможно, кто-то может увидеть, что происходит не так.

Фронтэнд .Чистая
<asp:Repeater ID="Repeater4" runat="server" DataSourceID="XmlDataSourceDriverApp">
               <ItemTemplate>
                   <div class="accordion_container">

                   <div data-node='<%#XPath ("@no")%>' class=" accordion_head">

                       <div style="text-align: left;">  <%#XPath ("@date")%>:  <%#XPath ("@day")%> </div>


                   </div>
                   <asp:Literal ID="litimg" runat="server" />

                   <div style="padding: 0px; height: 100% auto !important;" class="card card-body accordion_body">

                       <asp:Repeater ID="childRepeaterToday" runat="server" OnItemDataBound="childRepeaterToday_ItemDataBound" OnItemCommand="_postsRepeater_ItemCommand" EnableViewState="true" DataSource='<%# XPathSelect ("Tour") %>'>
                           <ItemTemplate>
                               <div class="accordion_container">
                               <div data-node='<%#XPath ("@no")%>' class='accordion_head' style="width: 100%; padding: 0px;">


                                           <asp:Label runat="server" ID="lblHead" Text='<%# XPath("TourHeaders/TourHeader") %>'></asp:Label>

                                           
                                               <asp:Label runat="server" ID="lblHeadChild" Text='<%# XPath("TourStatus") %>'></asp:Label>

                                               <asp:Label Visible="false" ID="lblIcon" runat="server" />
                                           



                               </div>

                                 <div class="accordion_body">
                               <table style="padding: 10px !important;" class="table table-responsive">
                                   <tr>
                                       <tr>
                                           <td>Turnr:

                                                <asp:Label runat="server" ID="lblTourID" Text='<%# XPath("TourID") %>'></asp:Label>
                                               <asp:HiddenField runat="server" ID="lblCustomerPhone" Value='<%# XPath("CustomerPhone") %>' />
                                               <asp:HiddenField runat="server" ID="lblRef" Value='<%# XPath("Reference") %>' />

                                               <asp:HiddenField  runat="server" ID="lblLineCount" Value='<%# XPath("LineCount") %>' />
                                           </td>
                                       </tr>

                                       <tr>
                                           <td>
                                               <asp:Label runat="server" ID="lblCustomerName" Text='<%# XPath("CustomerName") %>'></asp:Label>
                                           </td>
                                       </tr>



                                       <tr>
                                           <td>
                                               <%-- <asp:Label runat="server" ID="Label2" Text='<%# XPath("Remarks/Remark") %>'></asp:Label>--%>

                                               <%--<asp:Literal ID="litRemark" Text='<%# XPath("Remark") %>' runat="server" />--%>





                                               <asp:HiddenField Value='<%# XPath("NaviAdr") %>' ID="hdnAdr" runat="server" />

                                                 <asp:HiddenField Value='<%# XPath("Longitude") %>' ID="hdnLat" runat="server" />
                                                <asp:HiddenField Value='<%# XPath("Latitude") %>' ID="hdnLng" runat="server" />

                                               <%--  <asp:Repeater ID="rptRemark" runat="server" DataSource='<%# XPathSelect ("Remarks") %>'>
                                                   <ItemTemplate>


                                                         <asp:Literal ID="litRemark" Text='<%# XPath("Remark") %>' runat="server" />


                                                   </ItemTemplate>
                                               </asp:Repeater>--%>

                                           </td>
                                       </tr>

                                       <td>
                                           <div class="btn-group btn-group-justified">
                                               <asp:LinkButton UseSubmitBehavior="false" CommandArgument=' <%#XPath ("TourID")%>' CommandName="accept" class="btn btn-warning" Text="Tilbm" runat="server" />



                                               <asp:LinkButton Target="_blank" class="btn btn-success" CommandName="maps" Text="Navi" ID="lnkBtnMaps" runat="server"></asp:LinkButton>


                                               <asp:LinkButton CommandArgument=' <%#XPath ("TourID")%>' CommandName="info" class="btn btn-info" Text="Info" runat="server" />

                                           </div>
                                       </td>


                                   </tr>


                               </table>
                                     </div></div>
                           </ItemTemplate>

                       </asp:Repeater>
                       </div>
                 </div>
               </ItemTemplate>
           </asp:Repeater>


В jQuery
$(document).ready(function() {
    if (document.cookie.indexOf('collapsed_Nodes') >= 0) {
        var getCollapsed = Cookies.get('collapsed_Nodes');
        var checkCollapsed = getCollapsed.split('|');
        var arrayLength = checkCollapsed.length;
        for (var i = 0; i < arrayLength; i++) {
            $('[data-node="#' + checkCollapsed[i] + '"]').next('.accordion_body').addClass('hide');
            $('[data-node="#' + checkCollapsed[i] + '"]').children('.plusminus').children('img').attr('src', './icon/plus.svg');
        }
    }

    var adjustCookie = function() {
        var tags = [];
        $('.accordion_container .hide').each(function() {
            var tag = $(this).prev('.accordion_head').data('node');
            tags.push(tag.replace('#', ''));
        });

        if (tags.length) {
            Cookies.set('collapsed_Nodes', tags.join('|'), {
                expires: 1,
                path: window.location.pathname
            });
        } else {
            Cookies.remove('collapsed_Nodes', {path: window.location.pathname});
        }
    }

    $('.accordion_head').click(function() {
        if ($(this).next('.accordion_body').is(':visible')) {
            $(this).next('.accordion_body').slideUp(300);
            $(this).next('.accordion_body').addClass('hide');
            $(this).children('.plusminus').children('img').attr('src', './icon/plus.svg');
        } else {
            $(this).next('.accordion_body').slideDown(300);
            $(this).next('.accordion_body').removeClass('hide');
            $(this).children('.plusminus').children('img').attr('src', './icon/minus.svg');
        }
        adjustCookie();
    });
});


Щелчок по кнопке C#
protected void back1_Click(object sender, EventArgs e)
   {

       Response.Redirect("Menu.aspx?&Username=" + Request.QueryString["UserName"] + "&Webprefix=" + Request.QueryString["WebPrefix"] + "&ChfName=" + Request.QueryString["ChfName"] + "&adminemail=" + Request.QueryString["adminemail"] + "");


   }


Что я уже пробовал:

Я пробую с#
if (Request.Cookies["collapsed_Nodes"] != null)
{
    Response.Cookies["collapsed_Nodes"].Expires = DateTime.Now.AddDays(-1);   
}


а в Jquery
Cookies.remove('collapsed_Nodes', {path: window.location.pathname});
Я не могу использовать session abandon, потому что он перенаправляет логин.

Richard Deeming

Поскольку вы, похоже, не используете файлы cookie на сервере, вам может быть лучше использовать их локальное хранилище[^] или хранение сеансов[^] вместо.

1 Ответов

Рейтинг:
0

MadMyche

Первое, что я хотел бы сделать, это убедиться, что все ваши html-файлы отображаются нормально, а затем использовать инструменты отладки браузера (например, Firebug), чтобы проверить наличие ошибок при нажатии кнопки.
Пытаясь пройти через ваш Веб-формы код я действительно увидел пару HTML-ошибок и остановился.

<div class="accordion_container">
  <div data-node='<%#XPath ("@no")%>' class='accordion_head' style="width: 100%; padding: 0px;">
    <asp:Label runat="server" ID="lblHead" Text='<%# XPath("TourHeaders/TourHeader") %>'></asp:Label>
    "margin-right: 10px; float: right">
    <asp:Label runat="server" ID="lblHeadChild" Text='<%# XPath("TourStatus") %>'></asp:Label>

И еще один
<div class="accordion_body">
  <table style="padding: 10px !important;" class="table table-responsive">
    <tr>
      <tr>
        <td>Turnr:


Martin Lauritsen

У вас нет всего кода, но он искажен, вы видите ошибки, моя консоль пуста :) и visuel studio не показывает ошибок . Но спасибо :)

MadMyche

Я не опубликовал весь код, так как остановился, когда нажал на вторую ошибку HTML, которая может не отображаться в VS. Первый блок, который я опубликовал, возможно, и не является ошибкой HTML, но это ошибка. Второй блок имеет два элемента <TD> спина к спине, что является недопустимым HTML