0

ボタンが押されたときに行を折りたたむ C# .NET ページがあります。このような多くのチュートリアル ( http://codingforums.com/archive/index.php?t-90375.html ) を見つけ、それらのソリューションを実装しようとしましたが、ボタンをクリックしても何もしませんでした。頭がおかしくないことを確認するために、アイデアが機能するかどうかを確認するためだけに、小さなテスト ページを作成しました。どういうわけか、そうではありません。ブラウザはIE6です。私は Visual Studio 2005 を実行しています。これが機能しない理由を誰か知っていますか? レンダリングされたページには、期待どおりにボタンとテキスト行が表示されます。ボタンをクリックしてもテキスト行が消えません。div を使用できることはわかっていますが、これは単なる概念実証であることを覚えておいてください。私の実際のアプリケーションでは、折りたたむ必要があるのはテーブルの行です。

<%@ 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>
4

1 に答える 1

3

1)ディスプレイは(おそらく)最初は「ブロック」されていません。試す:

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

2) Naming Containersのおかげで、コントロールの ID はあなたが思っているものとは異なります。HTML ソースを確認する

于 2008-09-29T19:00:43.100 に答える