Pregunta

Yo tenía un montón de controles que mostré, HID, activo e inactivo en base a las acciones en la página web. Todo funcionó hasta que las puse en un acordeón. Ahora no puedo conseguir el Javascript para poder actualizar su estado. Tengo un pequeño ejemplo

este es el Javascript

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

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

Este es el 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>

Me gustaría saber lo que estoy haciendo mal aquí la alerta imprime el ID de la derecha.

Si hago algo donde paso el "este" objeto de la función i puede desactivar ese botón, pero que realmente necesita para deshabilitar o esconder objetos como 10

¿Alguien tiene una idea?

Código de ejemplo en http://www.riconllc.com/accordian.zip

¿Fue útil?

Solución

¿Cuál es el estado por defecto del acordeón? colapsado? No tengo idea de cómo funciona el acordeón, pero estoy sospechando que se está modificando el DOM HTML tal que cuando la página se carga por primera btmRocp "" no está realmente presente en la propia página, hasta que se vuelve "visible". Es decir, se podría inyectar controles dentro y fuera de la página, en función del estado de acordeón.

Su mejor apuesta para determinar a este comportamiento es insertar "depurador"; declaraciones en su página en los lugares adecuados, para inspeccionar el DOM en vivo en esos momentos.

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

Es una buena forma de mono con script en su página también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top