C # .NET / javascript: Filas de tabla plegables: ¿qué pasa con esto está mal?

StackOverflow https://stackoverflow.com/questions/150124

  •  02-07-2019
  •  | 
  •  

Pregunta

Tengo una página C # .NET donde quiero hacer que las filas colapsen cuando se presiona un botón. Encontré muchos tutoriales como este ( http://codingforums.com/archive/ index.php? t-90375.html ), intentó implementar sus soluciones, pero ninguna de ellas hace nada por mí cuando hago clic en mi botón. Para asegurarme de que no me estaba volviendo loco, hice una pequeña página de prueba solo para ver si la idea funciona. Por alguna razón, no lo es. El navegador es IE6. Estoy ejecutando Visual Studio 2005. ¿Alguien tiene alguna idea de por qué esto no funciona? La página representada muestra un botón y una línea de texto como era de esperar; la línea de texto no desaparece cuando hago clic en el botón. Sé que podría usar divs, pero recuerda que esto es solo una prueba de concepto; en mi aplicación real, las filas de la tabla deben colapsarse.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Project.Web.Auth.Test" %>
<!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 id="Head1" runat="server">
    <title>Shop Financials</title>
    <link href="../StyleSheets/ClaimsV2.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">     


        function btnClick(control)
        {   
            try
            {
                var id_table = document.getElementById(control).style;

                if(id_table.display == "block") 
                {
                   id_table.display = "none";
                }
                else 
                {
                    id_table.display = "block";
                }
            }
            catch(e)
            {
                alert(e);
            }   
       }

       function toDepositPrinterFriendly()
       {

       }

  </script>
</head>
<body>
    <form id="form1" runat="server">

    <table>
    <tr>
    <td><asp:Button runat="server" OnClientClick="javascript:btnClick('HeaderRow')"/></td>

    </tr>
    <tr id="HeaderRow" runat="server">
    <td>TEST2</td>

    </tr>    


    </table>

    </form>
</body>
</html>
¿Fue útil?

Solución

1) La pantalla (probablemente) no está 'bloqueada' inicialmente. Prueba:

if(id_table.display == 'none') 
{
  id_table.display = '';
}
else 
{
  id_table.display = 'none';
}

2) La identificación del control no será lo que crees que es, gracias a Naming Containers . Comprueba tu fuente HTML

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