簡體   English   中英

ASP.Net Panel JQuery SlideToggle Postback

[英]ASP.Net Panel JQuery SlideToggle Postback

我有一個帶有隱藏它的樣式的asp.net面板,我正在使用JQuery來滑動使用超鏈接切換面板。 這很好用。 但是,如果我在頁面上添加一個導致回發的按鈕,則面板將默認返回隱藏狀態。 我理解為什么會發生這種情況但是在發生回發時保持面板可見性狀態的最佳方法是什么?

<head runat="server">
    <title></title>

    <script type='text/javascript' src="jquery-1.4.1.min.js">
    </script>

    <style type="text/css">
        .panel
        {
            display: none;
        }
    </style>

    <script type="text/javascript">
        $(function() {
            $("#Link1").click(function(evt) {
                evt.preventDefault();
                $('#panelText').slideToggle('slow');
            });
        });
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:HyperLink ID="Link1" runat="server" NavigateUrl="#">SlideToggle
    </asp:HyperLink><br />
    <asp:Panel ID="panelText" runat="server" CssClass="panel">
        Some text</asp:Panel>
    <asp:Button ID="button1" runat="server" Text="Postback" />
    </form>
</body>
</html>

這就是我解決問題的方法......

<head runat="server">
    <title></title>

    <script type='text/javascript' src="jquery-1.4.1.min.js">
    </script>

    <style type="text/css">
        .panel
        {
            display: none;
        }
    </style>

    <script type="text/javascript">
        $(function() {
            $("#Link1").click(function(evt) {
                evt.preventDefault();
                $('#panelText').slideToggle('slow');
                if ($('#panelText').hasClass('panel')) {
                    $('#PanelState').attr('value', 'true');
                } else {
                    $('#PanelState').attr('value', 'false');
                }                
             });
        });

        $(document).ready(function() {
            if ($('#PanelState').attr('value') == 'false') {
                $('#panelText').addClass('panel');
            }
        });
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:HiddenField ID="PanelState" runat="server" Value="false" />
    <asp:HyperLink ID="Link1" runat="server" NavigateUrl="#">SlideToggle
    </asp:HyperLink><br />
    <asp:Panel ID="panelText" runat="server">
        Some text</asp:Panel>
    <asp:Button ID="button1" runat="server" Text="Postback" />
    </form>
</body>
</html>

在表單中添加隱藏字段:

 <asp:HiddenField id="hdnPanelState" runat="Server" value="false" />

並修改JS函數:

<script type="text/javascript">
    $(function() {
        $("#Link1").click(function(evt) {
            evt.preventDefault();
            $('#panelText').slideToggle('slow');
            //YOU WILL ALSO NEED TO CALCULATE IF SHOWING PANEL OR HIDING 
            $("#hdnPanelState").attr("value","true");//Store Value
        });
    });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM