我在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;
我总是把计数值作为一个。帮助赞赏。
答案 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,那么您还必须为此管理计数器。