如何在循环中获取多个文本框的值

时间:2011-08-18 10:34:09

标签: c# asp.net

我的页面中有一些文本框。我想获取数组中的所有文本框值并插入到数据库表中。

是否可以选择循环工作

4 个答案:

答案 0 :(得分:11)

public IEnumerable<string> AllTextsFromTextboxes()
{
    foreach (var control in Page.Controls.OfType<TextBox>())
    {
        yield return control.Text;    
    }
}

答案 1 :(得分:1)

如果所有文本框都在页面上直接

,你可以在这些行上尝试一些东西
foreach(Control c in Page.Controls)
{
    if (c is TextBox)
    {
        //get the text
    }
}

这对于子控件不起作用,你必须递归迭代

答案 2 :(得分:1)

是的,您可以将控件放在面板中,然后迭代并获取值。 e.g。

foreach (Control ctrl in Panel1.Controls)
    {
        if (ctrl.GetType().Name == "TextBox")
        {
            if (((TextBox)ctrl).Text != string.Empty)
            {
                // do stuff here
            }
       }
   } 

答案 3 :(得分:1)

private void FindSelecedControl(Control control) 
{
    if (control is TextBox)
    {
        TextBox txt = (TextBox)control;
        txt.Enabled = false;
    }
    else
    {
        for (int i = 0; i < control.Controls.Count; i++)
        {
            FindSelecedControl(control.Controls[i]);
        }
    } 
}

foreach (Control control1 in this.Form.Controls) 
{
     FindSelecedControl(control1); 
}