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);