HY,
我创建了一些带有标准内容的动态文本框。
当我按下一个按钮时,有谁知道如何阅读这些文本框的内容(假设用户修改了标准内容)?
非常感谢。
杰夫
更新
这就是我创建文本框的方式:
foreach (string name in listOfNames)
{
TextBox tb = new TextBox();
tb.Text = name;
tb.BorderStyle = BorderStyle.None;
tb.BorderWidth = 0;
tb.Font.Name = "Arial";
tb.Font.Size = 8;
}
答案 0 :(得分:3)
具体取决于您使用的技术。然而,这个概念仍然非常相似,但对于ASP.NET来说,它会更有趣。
<强>的WinForms / WPF / Silverlight的强>
维护动态创建的文本框列表,按下按钮后,您可以浏览文本框列表并阅读Text
属性以获取用户输入。
ASP.NET - 标记更新后,此部分似乎最符合您的要求。
对于ASP.NET,您需要在OnInit方法的覆盖中创建文本框,这应该在每次回发时发生。然后在Button.Click
事件中,您可以从OnInit函数中创建的文本框中读取用户输入。您需要确保在每个帖子上创建的控件都使用相同的ID
。
答案 1 :(得分:2)
您需要确保每次回发都重新创建文本框。
如果您不重新创建它们,您将无法访问其属性或事件。
创建动态控件的最佳位置是页面Init
事件处理程序。
我建议您阅读ASP.NET page life cycle。
更新(更新后的问题)
确保为文本框设置ID
(以及另一个),以便稍后可以参考。
我无法看到您将这些控件添加到页面的位置。
答案 2 :(得分:0)
Request.Form是键值对的集合,表示从ASP.NET请求返回的所有数据。如果您访问它,您可以获得任何值,无论其控件是在ASPX代码中指定还是在代码隐藏文件中动态创建。
如果在页面生命周期的init部分重新创建它们,也可以自动将它们的值放回到它们中。如果这样做,当ASP.NET重新创建页面状态并应用表单中的值时,将设置它们的值。
答案 3 :(得分:0)
您应该像正常控件一样访问它们,您只需要获得对控件的引用。 请记住在每个回发上重新创建所有控件。
this是关于asp.net中动态控件的有用文章