使用 asp.net 迭代文本框

Rya*_*yan 5 html c# asp.net

我正在使用 asp.net 构建一个页面。我有一个包含文本框和提交按钮的表格的表单。提交表单时,我想抓取输入到文本框中的所有文本并对其进行操作。为此,我有以下方法:

protected void Button1_Click(object sender, EventArgs e)
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();

    foreach (Control c in this.Controls)
    {
        if (c.GetType().Name == "TextBox")
        {
            TextBox tb = (TextBox)c;
            sb.AppendLine(tb.Text);
        }
    }
    Label1.Text = sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)

问题在于控件显然不包含我的任何文本框。当我遍历控件并打印出它们的名称时,我得到的唯一一个是“site_master”。(我还尝试了 Controls 和 Page.Controls 而不是 this.Controls)。

我的迭代器有问题吗?是否有另一种方法可以迭代表或页面中的所有文本框?实现这一目标的最佳方法是什么?

Nic*_*ndo 4

List<Textbox>如果您知道所有文本框控件,那么构建一个 会不会太多?

List<Textbox> txtBoxes = new List<Textbox>();
txtBoxes.Add(tb1);
txtBoxes.Add(tb2);
//etc..
Run Code Online (Sandbox Code Playgroud)

然后你就有了一个不错的清单可以使用