在ASP.NET回发后保持当前的折叠窗格打开

时间:2011-07-06 07:30:42

标签: javascript jquery asp.net

我在ASP.NET页面的回发后保持活动状态是否有问题。

这是脚本:

$(document).ready(function() {

    $('.accordionButton').click(function() {

        //Remove the "accordionOn" calss from all button
        $('.accordionButton').removeClass('accordionOn');

        //Close all open divs
        $('.accordionContent').slideUp('normal');

        //Open the div
        if ($(this).next().is(':hidden') == true) {

        //Add the "accordionOn" class to the button
            $(this).addClass('accordionOn');

            //Open div
            $(this).next().slideDown('normal');
        }

    });

});

这是标记:

<div id="accordionWrapper">
        <div class="accordionButton">
            Hearder 1</div>
        <div class="accordionContent">
            Content 1
            <asp:Label ID="lblName" runat="server"></asp:Label>
            <br />
            <asp:Button ID="btnSayHello" runat="server" Text="Say Hello" />
        </div>
       <div class="accordionButton">
        Hearder 2</div>
    <div class="accordionContent">
        Content 2
    </div>    
       <div class="accordionButton">
        Hearder 3</div>
    <div class="accordionContent">
        Content 3
    </div>      

</div>

我想坚持使用活跃的手风琴,即当前的开放式div,在ASP.NET的后期保持开放。

谢谢。

4 个答案:

答案 0 :(得分:1)

回发所选窗格的索引,并在页面加载时恢复为

$('.accordionButton').eq(index).click()

答案 1 :(得分:0)

您可以将手风琴位置保存在Cookie中,然后在页面加载时检索它并将其设置为:

   $('.accordionButton').eq(index).click()

查看here如何在javascript中设置/获取cookie中的值

答案 2 :(得分:0)

您应保存所选的窗格,并在页面加载时使用javascript选择它:

$(document).ready(function(){
  $('.accordionButton').eq(<%= SelectedPane %>).click()
});

或者,你可以像facebook那样在你的网址中使用哈希,但它会更复杂。

希望这会有所帮助。干杯

答案 3 :(得分:0)

索引值可以是布尔值或整数

<script language="javascript" type="text/javascript">
    $(function () {
        var activeIndex = parseInt($('#<%=AccordionIndexHidden.ClientID %>').val());
        if (activeIndex < 0) 
            activeIndex = false;
        $("#accordion").accordion({
            autoHeight: false,
            event: "mousedown",
            active: activeIndex,
            change: function (event, ui) {
                var index = $(this).children('h3').index(ui.newHeader);
                $('#<%=AccordionIndexHidden.ClientID %>').val(index);
            }
        });
    });


</script>

请记住以小于0的索引开始

    <asp:HiddenField ID="AccordionIndexHidden" runat="server" Value="-1" />
相关问题