C # .NET / javascript :Сворачиваемые строки таблицы - что в этом плохого?

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

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть страница C # .NET, где я хочу, чтобы строки сворачивались при нажатии кнопки.Я нашел много руководств, подобных этому (http://codingforums.com/archive/index.php?t-90375.html), пытались реализовать свои решения, но ни одно из них ничего не делает для меня, когда я нажимаю свою кнопку.Чтобы убедиться, что я не схожу с ума, я создал небольшую тестовую страницу, просто чтобы посмотреть, сработает ли моя идея.По какой-то причине это не так.Браузер - IE6.Я использую Visual Studio 2005.У кого-нибудь есть какие-нибудь идеи, почему это не работает?Отрисованная страница показывает кнопку и строку текста, как я и ожидал;строка текста не исчезает, когда я нажимаю на кнопку.Я знаю, что мог бы использовать divs, но помните, что это всего лишь доказательство концепции;в моем реальном приложении именно строки таблицы должны сворачиваться.

<%@ 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>
Это было полезно?

Решение

1) Дисплей (вероятно) изначально не "блокируется".Попробуй:

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

2) Идентификатор элемента управления не будет таким, как вы думаете, благодаря Присвоение имен Контейнерам.Проверьте свой HTML-источник

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top