为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

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

查看完整回答
反对 回复 2022-04-11
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

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

查看完整回答
反对 回复 2022-04-11
  • 2 回答
  • 0 关注
  • 218 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信