【发布时间】:2010-08-11 14:40:17
【问题描述】:
我正在遍历 asp:tablerows 的集合,以便能够获取或设置嵌套在行的第三个单元格中的文本框中的文本;我是按类型而不是按 ID 执行此操作的,因为该列中的单元格 ID 并不完全一致——因此我不能真正调用 FindControl() 来实现这一点。我已经将 TableRow 中的第三个控件转换为 TableCell,然后将该单元格中的第一个控件转换为 TextBox。不太正确,因为我收到了一个超出范围异常的索引。问题主要在于第三个单元格的 Controls.Count() 属性,该属性归零。
不确定是否有更好的方法来访问文本框——我应该求助于 FindControl() 吗?
代码:
foreach (TableRow row in tblProviders.Rows) {
string value = ((TextBox)((TableCell)row.Controls(2)).Controls(0)).Text;
...
}
我在这里的搜索只产生了 FindControl() 的使用,所以这可能是唯一的方法...
谢谢!
【问题讨论】:
-
为什么小区ID不一致?能给我举个例子吗?您在使用 ClientID 吗?
-
@Daniel-您的递归调用运行良好。不确定在这种情况下如何/为什么使用 ClientID。前两个文本框值相对于该列中的其他值是唯一的(两者都将静态显示;其他将是动态的),因此我适当地分配了 id。再次感谢!
-
@Ben-您的解决方案非常优雅且有效,但 Daniel 打败了您。无论如何,我都赞成你的回答。谢谢!
标签: asp.net