C # .NET / javascript: righe di tabella comprimibili - che dire di questo è sbagliato?

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

  •  02-07-2019
  •  | 
  •  

Domanda

Ho una pagina C # .NET in cui voglio far collassare le righe quando viene premuto un pulsante. Ho trovato molti tutorial come questo ( http://codingforums.com/archive/ index.php? t-90375.html ), ho cercato di implementare le loro soluzioni, ma nessuno di loro fa nulla per me quando faccio clic sul mio pulsante. Per essere sicuro di non impazzire, ho creato una piccola pagina di test solo per vedere se l'idea funziona. Per qualche motivo, non lo è. Il browser è IE6. Sto eseguendo Visual Studio 2005. Qualcuno ha idea del perché questo non funziona? La pagina renderizzata mostra un pulsante e una riga di testo come mi aspetterei; la riga di testo non scompare quando faccio clic sul pulsante. So che potrei usare i div, ma ricordo che questa è solo una prova del concetto; nella mia vera applicazione sono le righe della tabella che devono collassare.

<%@ 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>
È stato utile?

Soluzione

1) Il display non è (probabilmente) inizialmente "blocco". Prova:

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

2) L'ID del controllo non sarà quello che pensi che sia, grazie a Naming Containers . Controlla la tua fonte HTML

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top