C# 如何从动态文本框中检索数据?

C# 如何从动态文本框中检索数据?,c#,asp.net,webforms,C#,Asp.net,Webforms,我的应用程序中添加了一些动态的asp:TextBox:查看我的 如何阻止代码打印用户创建的第一个文本框的名称?尝试以下操作: lblScope.Text = ""; foreach (Control control in PlaceHolder1.Controls) { if (control is TextBox) { TextBox txt = (TextBox)control; lblScope.Text += string.Format(

我的应用程序中添加了一些动态的
asp:TextBox
:查看我的

如何阻止代码打印用户创建的第一个文本框的名称?

尝试以下操作:

lblScope.Text = "";

foreach (Control control in PlaceHolder1.Controls)
{
    if (control is TextBox)
    {
        TextBox txt = (TextBox)control;
        lblScope.Text += string.Format("<li>{0}</li>", txt.Text);
    }
}
lblScope.Text=”“;
foreach(占位符1.控件中的控件)
{
如果(控件为文本框)
{
TextBox txt=(TextBox)控件;
lblScope.Text+=string.Format(“
  • {0}
  • ”,txt.Text); } }

    我们正在做的是:我们循环占位符1中的所有控件,如果控件为复选框,我们将向占位符1中的标签添加文本。如果不调用相同的方法来检查当前控件中是否有嵌套的复选框。这将对所有控件执行。就像我说的,这叫做递归。

    你需要强制转换它。@DanielA.White请解释
    placeholder 1.Controls[…]
    返回一个控件。您需要将其强制转换为
    LiteralControl
    以获取
    Text
    属性。@ObadiahWilliams您不想看到“YEAH!”?我不想让它打印出“Textbox 4”,它循环遍历我的信息,但首先它给出最后一个文本框的名称,例如。文本框4,橙子,苹果,香蕉,梨。如何阻止它打印最后一个文本框名称?抱歉,我不明白。我更新了我的问题以向您显示发生了什么。更新将删除所有内容,只打印用户创建的最后一个文本框“textbox 4”的名称。您以前的代码工作正常,它正在从动态文本字段中删除所有文本。我只是想弄明白为什么它会打印出最后一个文本框name@ObadiahWilliams只需在循环之前为
    lblScope.Text
    分配一个空字符串,并使用前面的代码。错误178“System.Web.UI.Control”不包含“Text”的定义,并且没有接受类型为的第一个参数的扩展方法“Text”“System.Web.UI.Control”可以通过编辑变得更清晰。确保复制粘贴正确。无法在UI.Control上运行此代码,因为您正在检查childControl是否为TextBox。
    foreach (Control control in PlaceHolder1.Controls)
    {
        for (int i = 0; i < counter; i++)
        {
            lblScope.Text = "<li>" + PlaceHolder1.Controls[i].ToString() +"</li>";
        }
    } 
    
    foreach (Control control in PlaceHolder1.Controls)
    {
        if (control is TextBox)
        {
            TextBox txt = (TextBox)control;
            lblScope.Text += string.Format("<li>{0}</li>", txt.Text);
        }
    }
    
    lblScope.Text = "";
    
    foreach (Control control in PlaceHolder1.Controls)
    {
        if (control is TextBox)
        {
            TextBox txt = (TextBox)control;
            lblScope.Text += string.Format("<li>{0}</li>", txt.Text);
        }
    }
    
    private void ProcessAllControls(Control rootControl)
    {
        foreach (Control childControl in rootControl.Controls)
        {
             if(childControl is TextBox)
             {  
                  TextBox txt = (TextBox)childControl;             
                  lblScope.Text += string.Format("<li>{0}</li>", txt.Text);
             }
             else
             {     
                  ProcessAllControls(childControl);
             }   
        }
    }
    
    ProcessAllControls(PlaceHolder1);