Pergunta

Eu tenho uma página C # .NET onde eu quero fazer linhas colapso quando um botão é pressionado. Eu encontrei muitos tutoriais como este ( http://codingforums.com/archive/ index.php? t-90375.html ), tentou implementar suas soluções, mas nenhum deles fazer nada por mim quando eu clico em meu botão. Para se certificar de que eu não estava ficando louco, eu fiz uma página de teste pequena só para ver se a idéia funciona. Por alguma razão, não é. O navegador é IE6. Estou executando o Visual Studio 2005. Alguém tem alguma idéia de por que isso não está funcionando? A página renderizada mostra um botão e uma linha de texto como seria de esperar; a linha de texto não desaparece quando eu clico no botão. Eu sei que eu poderia usar divs, mas lembre-se esta é apenas uma prova de conceito; no meu aplicativo real, é linhas da tabela que devem entrar em colapso.

<%@ 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>
Foi útil?

Solução

1) O visor é (provavelmente) não 'block' inicialmente. Tente:

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

2) O ID do controle não será o que você pensa que é, graças a Naming Containers . Verifique se o seu código HTML

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