你好,请问为什么在asp.net中table控件count总是为0?求解释

我在前台添加了一个<asp:Table ID="tbControl" runat="server" ></asp:Table>然后在
!ispostback中给这个tbControl动态添加行以及再行里的单元格里动态添加textbox等,我在运行后,调试发现两个问题:1.tbControl.Rows.Count总是为0;2.我在动态添加textbox并给textbox的ID赋值,发现在页面查看源代码id已经改变了,系统在ID前都添加了一段ctl00_contentArea_请问这是什么原因造成的,怎么修改。谢谢

MYYA
浏览 222回答 2
2回答

慕森卡

你有没有给tbControl绑定数据,如果没有,那肯定是0;系统在ID前都添加了一段ctl00_contentArea_这是因为在客户端每个控件都有一个ID,而你添加的是一个相同控件,所以系统自动分配一个ID给控件了,你可以用tbControl.Items(i).FindControl("textboxID")的方法找到每行的控件或tbControl.Items(i).Controls(0).ClientID的方法得到textbox的ID。

神不在的星期二

问题一,检查你查询行数的时候是否已经添加完行和单元格,另外检查你的TableRow是否添加到tbControl.Rows.Add(TableRow)中。问题二,由于你是采用后台动态生成的ID则本ID可以随意填写,编辑器无法确保ID不重复,所以编译后会动态生成唯一ID,要想获取编译后的ID就用对象textbox.ClientID可以得到
打开App,查看更多内容
随时随地看视频慕课网APP