gpt4 book ai didi

asp.net - 按类型访问 asp.net tablerow 子控件

转载 作者:行者123 更新时间:2023-12-05 02:25:10 25 4
gpt4 key购买 nike

我正在遍历 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() 的使用,所以这可能是唯一的方法......

谢谢!

最佳答案

您可以按如下方式使用 Linq:

var TextBoxes = tblProviders.Rows.OfType<TableRow>()
.SelectMany(row => row.Cells.OfType<TableCell>()
.SelectMany(cell => cell.Controls.OfType<TextBox>()));

TextBoxes 将是 tblProviders.Rows 中所有文本框的集合,然后您可以对其进行迭代并执行您喜欢的操作。

关于asp.net - 按类型访问 asp.net tablerow 子控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com