none
Accordion JQuery com UpdatePanel RRS feed

  • Pergunta

  • Uso VS2010, aspnet4, c# e sqlserver2008

    Dentro de uma página (que uso updatepanel) tenho um accordion com 4 session, na segunda session tem um botão que faz um postback para pesquisar o endereço, sempre que preciso pesquisar o endereço ele remonta o accodion e abre a primeira session e não a segunda onde tem o botão que usei para pesquisar

    Tem como corrigir para sempre que eu pesquisar o endereço na session 2 ele fazer o postback, mas voltar para a session 2 

    segunda-feira, 15 de outubro de 2012 10:39

Respostas

  • Boa_Vida,

    Existe uma solução aonde é necessário gravar o index atual em um HiddenField e logo em seguida quando ocorrer um PostBack você recupera este valor e atribui novamente ao accordion na propriedade active:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="css/smoothness/jquery-ui-1.9.0.custom.css" rel="stylesheet" type="text/css">
        <script src="js/jquery-1.8.2.js" type="text/javascript"></script>
        <script src="js/jquery-ui-1.9.0.custom.js" type="text/javascript"></script>
        <script type="text/javascript" language="javascript">
    
            $(document).ready(function () {
                var activeIndex = parseInt($('#<%=hfaccordion.ClientID %>').val());
    
                $("#accordion").accordion({
                    active: activeIndex,
                    change: function (event, ui) {
                        var index = $(this).children('h3').index(ui.newHeader);
                        $('#<%=hfaccordion.ClientID %>').val(index);
                    }
                });
    
    
            });
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:HiddenField ID="hfaccordion" runat="server" />
        <div id="accordion">
            <h3>
                <a href="#">Teste1</a></h3>
            <div>
                Test 1
                <asp:Button ID="Button2" runat="server" Text="Post" />
            </div>
            <h3>
                <a href="#">Teste2</a></h3>
            <div>
                Test 2
                <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
                    <asp:ListItem>a</asp:ListItem>
                    <asp:ListItem>b</asp:ListItem>
                    <asp:ListItem>c</asp:ListItem>
                    <asp:ListItem>d</asp:ListItem>
                </asp:DropDownList>
            </div>
        </div>
        </form>
    </body>
    </html>
    

    Referencia:
    http://stackoverflow.com/questions/2148933/keep-the-current-jquery-accordion-pane-open-after-asp-net-postback

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Álvaro Luiz segunda-feira, 15 de outubro de 2012 14:22
    segunda-feira, 15 de outubro de 2012 13:12