在后面的代码中访问动态生成的表行

时间:2014-04-02 10:59:01

标签: c# javascript asp.net

我在aspx页面中有标题表。我已使用javascript动态地将行添加到表中。我需要访问服务器端新添加的表行。我只能访问标题行,它alwasys show table只有一行,无法访问新添加的行。

ASPX页面

<table runat="server" id="tblNew" clientidmode="Static">
                                        <tr>
                                            <th>
                                                Column1
                                            </th>
                                            <th>
                                                Column2
                                            </th>
                                        </tr>
                                    </table>

用于添加行的Javascript函数。

    var table = document.getElementById("SelectedItems");
    var newrow = table.insertRow(0);
    var newcel0 = newrow.insertCell(0);
    var newcel1 = newrow.insertCell(1);

CS TO访问表格行

    int rowCount=tblNew.Rows.Count;

我总是把计数值作为一个。帮助赞赏。

2 个答案:

答案 0 :(得分:0)

您的JavaScript正在浏览器中执行。您的CS代码正在您的服务器中执行。在生成的html页面转移到您的webbrowser之前,您的服务器代码正在执行。

在CS代码而不是JavaScript代码中将行添加到表中。这将解决问题。

答案 1 :(得分:0)

我建议使用隐藏字段来管理计数:

<input type="hidden" value="0" runat="server" id="hiddenRowCount"/>

现在,无论何时使用javascript向表中添加新行,请按以下方式递增计数器:

var table = document.getElementById("<%=tblNew.ClientID%>");
var newrow = table.insertRow(0);
newrow.insertCell(0);
newrow.insertCell(1);

// get current value of the hidden field
var rowCount = document.getElementById('<%=hiddenRowCount.ClientID%>').value;

if (rowCount != '') {
    rowCount = parseInt(rowCount) + 1;
} else {
    rowCount = 1;
}

document.getElementById('<%=hiddenRowCount.ClientID%>').value = rowCount;

现在,您可以获得代码后面的总行数,如下所述:

int totalRows = this.tblNew.Rows.Count + Convert.ToInt32(this.hiddenRowCount.Value);

注意:如果您必须使用javascript动态删除raw,那么您还必须为此管理计数器。