1

ここで少し問題があります。<script language ="JavaScript" runat="server">Web サイトからテーブルを読み取り、データを解析して 2 次元配列に格納するコードがあります。正しく動作します。Response.Write を使用してデータを表示できます。

ここで、配列内のデータを使用して独自のテーブルを作成し、ブラウザーに表示したいと思います。追加するだけだと思いました:

</head> 
<body onload="tableCreator();">
<table id="table" border="1">
    <tr> 
    <td id="Document Number">Document Number</td>
    <td id="Document Link">Document Link</td>
    <td id="Date Filed">Date Filed</td>
    <td id="Date Entered">Date Entered</td>
    <td id="Date Terminated">Date Terminated</td>
    <td id="Description">Description</td>
    </tr>
</table> 
<body> 
</html>

スクリプトが終了した後ですが、ここから問題が始まります。関数を挿入する場所がわかりませんtableCreator()。(script language ="JavaScript" runat="server") コード内で行うと (配列のデータを使用できるようにするため)、関数は呼び出されません。タグを (script language="JavaScript") (no runat="server") に変更すると、関数は呼び出されますが、スクリプトは実行されません (複数の Response.Write と何もありませんが、テーブルは印刷中)

function tableCreator () {
  var table = document.getElementById("table");
  var rowCount = table.rows.length;
  var row;
  row = table.insertRow(rowCount);
  var cell1 = row.insertCell(0);
  cell1.innerHTML = "1";
}

何か案は?

4

1 に答える 1

1

サーバー側のコードとクライアント側のコードを混同しています。

JavaScript は、サーバー上で作成された 2 次元配列にアクセスできません (タグを追加runat="server"してもscript、サーバー側の変数にアクセスすることはできません)。サーバー側の言語で配列をシリアライズしてから、クライアントがアクセスできるようにする必要があります (隠しフィールドはこれに適しています)。

または、サーバー側にデータがある場合、クライアント側にテーブルを作成する理由は何ですか。ページの読み込み時にサーバー側でテーブルを作成するだけです。

于 2012-05-23T19:30:11.543 に答える