将表从C#代码传递到javascript函数

时间:2012-12-17 15:31:30

标签: c# asp.net

我有一个用户控件,它是更新面板的一部分。用户控件是标题(标记)和asp表。 asp:Table仅在头文件中的ascx文件中定义。通过读取csv文件,可以从后面的代码动态更新此表的内容。此设置位于“更新”面板中,该面板每分钟更新一次。每隔一分钟后,csv文件就会更新,因此需要更新表格。

这是棘手的部分。在我更新表之前,我需要保存旧表的副本,然后更新新表。一旦新表更新并且即将加载页面,我需要从page_load处理程序中调用javascript函数并传递两个表。在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);
}

1 个答案:

答案 0 :(得分:1)

使用html表并形成包含表和值的字符串,并将该字符串传递给javascript。

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

在javascript中

var newT = '<%= newTable %>'
相关问题