0

更新パネルの一部であるユーザーコントロールがあります。ユーザーコントロールは、heading(タグ)とaspテーブルです。asp:Tableは、ヘッダーのみを使用してascxファイルで定義されます。このテーブルの内容は、csvファイルを読み取ることにより、コードビハインドから動的に更新されます。この設定は、毎分更新される更新パネル内にあります。1分ごとにcsvファイルが更新されるため、テーブルを更新する必要があります。

ここに注意が必要な部分があります。テーブルを更新する前に、古いテーブルのコピーを保存してから、新しいテーブルを更新する必要があります。新しいテーブルが更新され、ページが読み込まれる直前に、page_loadハンドラーからjavascript関数を呼び出して、2つのテーブルを渡す必要があります。javascript関数内で、古いテーブルと新しいテーブルをセルごとに比較し、比較の結果に基づいていくつかの作業を行う必要があります。

更新する前に、テーブルから別のテーブルにデータをコピーする方法は次のとおりです。

TableCell tableCell;
TableRow tableRow;
for (int i = 0; i < Table1.Rows.Count; i++)
{
    tableRow = new TableRow();
    for (int j = 0; j < Table1.Rows[i].Cells.Count; j++)
    {
        tableCell = new TableCell();
        tableCell.Text = Table1.Rows[i].Cells[j].Text;
        tableRow.Cells.Add(tableCell);
    }
    oldTable.Rows.Add(tableRow);
}

しかし、何らかの理由で、テーブルをjavascript関数に渡し、javascriptのセルにアクセスすると、ヘッダーのみが表示され、古いテーブルの値は表示されません。しかし、コードの背後にあるセルにアクセスすると、値を確認できます。

私のHTMLは

<table id="ContentPlaceHolderBody_ContentPlaceHolderBody_TradxPriceTable_5_oldTable" ClientID="oldTable">
    <tr>
        <td colspan="3">6M EURIBOR</td>
        <td colspan="3">6M EURIBOR</td>
    </tr><tr>
         <td>Instr</td>
         <td>Bid</td>
         <td>Ask</td>
         <td>Instr</td>
         <td>Bid</td>
         <td></td>
    </tr><tr>
         <td></td>
         <td></td>
         <td></td>
         <td colspan="3">BASIS 3s6s</td>
    </tr><tr>
          <td></td>
          <td></td>
          <td></td>
          <td>Instr</td>
          <td>Bid</td>
          <td>Ask</td>
    </tr><tr>
         <td></td>
         <td></td>
         <td></td>
         <td></td>
         <td></td>
         <td></td>
    </tr>
</table>

私のJavaScriptは

function foo(table1,table2)
{
   var oldTable = document.getElementById(table1);
   var newTable = document.getElementById(table2);
   alert(oldTable.rows[2].cells[1].innerHTML+" "+newTable.rows[2].cells[1].innerHTML);
}
4

1 に答える 1

1

htmlテーブルを使用し、テーブルと値を使用して文字列を作成し、その文字列をjavascriptに渡します。

string newTable = "<Table><Tr><Td>"+ somevalue +"</Td></Tr></Table>"

javascriptで

var newT = '<%= newTable %>'
于 2012-12-17T15:42:47.973 に答える