Pergunta

Eu tinha um monte de controles que eu exibida, escondido, ativado e desativado com base em ações na página da web. Tudo funcionou até que eu colocá-los em um accordian. Agora eu não posso obter o Javascript para ser capaz de atualizar seu estado. Eu tenho um pequeno exemplo

Este é o Javascript

 <script type="text/javascript">
  var ctrl = document.getElementById('<%= btmRocp.ClientID %>');

    function ShowPanel(control)
{
    alert('<%= btmRocp.ClientID %>');
    ctrl.disabled = true;
}
</script>   

Este é o Accordian

 <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <cc1:Accordion  ID="MyAccordion"
                        runat="Server"
                        SelectedIndex="0"                      
                       >
         <Panes>
            <cc1:AccordionPane ID="accordianPane0" runat=server>
            <Header>Create New Report </Header>
            <Content>a
            <asp:Button ID="Button1"  onmouseup="ShowPanel('') " runat="server" Text="Button" />            
            <asp:Button ID="btmRocp" runat="server" Text="Button" />
            </Content>
            </cc1:AccordionPane>
            <cc1:AccordionPane ID="accordianPane1"  runat=server>
            <Header>Create New Report </Header>
            <Content>b</Content>
            </cc1:AccordionPane> 
            </Panes>

        </cc1:Accordion>

Eu gostaria de saber o que estou fazendo de errado aqui as impressões alerta o ID direita.

Se eu faço algo onde eu passar o "presente" objeto para a função que eu posso desativar esse botão, mas eu realmente preciso dele para desativar, ou esconder como 10 objetos

Alguém tem uma idéia?

Exemplo de código em http://www.riconllc.com/accordian.zip

Foi útil?

Solução

Qual é o estado padrão do acordeão? desabou? Eu não tenho nenhuma idéia de como o acordeão funciona, mas estou suspeitar que ele está modificando o HTML DOM tal que quando a página é carregada pela primeira vez "btmRocp" não está realmente presente na própria página, até que se torna "visível". Ou seja, ele pode ser a injeção controles para dentro e fora da página, com base no status acordeão.

Sua melhor aposta em descobrir esse comportamento é inserir "debugger"; declarações em sua página em pontos apropriados, para inspecionar o DOM ao vivo naqueles pontos no tempo.

<textbox id="debugbox" onblur="this.value = eval(this.value);"></textbox>

É uma boa maneira de macaco com script em sua página também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top