请教一个关于table的问题
我在前台定义了一个table,代码如下:<ASP:Table Runat="Server" GridLines="Both" CellPadding="4" id="Table2" HorizontalAlign="Center">
<ASP:TableRow ID="TableRow1" Runat="Server">
<ASP:TableCell ID="TableCell1" Runat="Server" Text="产品"/>
<ASP:TableCell ID="TableCell2" Runat="Server" Text="数量"/>
<ASP:TableCell ID="TableCell3" Runat="Server" Text="单价"/>
<ASP:TableCell ID="TableCell4" Runat="Server" Text="总金额"/>
<ASP:TableCell ID="TableCell5" Runat="Server" Text="操作">
</ASP:TableCell>
</ASP:TableRow>
</asp:Table>
然后通过javascript往table中添加了若干行。现在定义了一个Button,想通过Button在后台获取table中的数据,代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
String aa = Table2.Rows[1].Cells[1].Text.ToString();
Response.Write(aa);
}
提示错误说“指定的参数已超出有效值的范围”。
但是如果换成String aa = Table2.Rows[0].Cells[1].Text.ToString();
就能正常显示“数量”。
请问这是为什么?怎么才能获得table中的数据? --------------------编程问答-------------------- 暂不考虑你js添加的内容。
你现在的table2中只有一行,而Rows[1]是第二行,所以超出了最大索引。
如果你用js添加了行,那么肯定是在后台没有获取到。 --------------------编程问答-------------------- 恩,click事件里最好先判断一下Table2.Rows.Count
再执行你要做的事 --------------------编程问答-------------------- 因为你是用js动态在客户端添加的HTML代码,所以当你点击按钮回发时页面刷新,这样没办法获取到的。
--------------------编程问答-------------------- 说明你的table只有一行 --------------------编程问答-------------------- 你的JS是怎么往里添加的 --------------------编程问答--------------------
回发了,又要重新给table赋值,故取不到 --------------------编程问答-------------------- 你的表中只有一行,0代表的是第一行,1代表的是第二行 --------------------编程问答-------------------- 你的表中只有一行 --------------------编程问答--------------------
那怎么才能取到值? --------------------编程问答--------------------
从excel中读出数据,然后再把数据加到table中。
补充:.NET技术 , ASP.NET