我有负荷值,ASPX
<div id ="div1" runat="server"></div>
<div id ="div2" runat="server"></div>
等
和后面的代码创建这些文本框除数像这样
protected void Page_Load(object sender, EventArgs e){
for (int i = 1; i < 11; i++)
{
Control ctrl = FindControlRecursive(Page, string.Format("div{0}", i));
System.Web.UI.HtmlControls.HtmlGenericControl ctrl2 = (System.Web.UI.HtmlControls.HtmlGenericControl)ctrl;
TextBox tbt = new TextBox();
tbt.Attributes.Add("placeholder", "Title");
tbt.ID = string.Format("page{0}", i);
ctrl2.Controls.Add(tbt);
ctrl2.Controls.Add(new LiteralControl(" "));
TextBox tbu = new TextBox();
tbu.Attributes.Add("placeholder", "URL");
tbu.ID = string.Format("page{0}url", i);
ctrl2.Controls.Add(tbu);
等。
我的问题是:如何在用户点击提交按钮后从这些文本框中检索文本?
我已经在stackoverflow上冲浪,但我还没有找到解决方案。
我周围有点摆弄着下面的代码(基于某些计算器主题):
protected string GetTextBoxValues(object sender, EventArgs e)
{
string message = "";
foreach (TextBox textBox in Controls.OfType<TextBox>())
{
message += textBox.ID + ": " + textBox.Text + "\\n";
}
return message;
}
,然后在submit_click打印出值:
Response.Write(GetTextBoxValues(sender, e));
但不给我任何东西
基本上,我想要读取每个div(包含大约6个文本框)的所有值,用分号分隔,这样我可以进一步操纵数据
在asp页面生命周期中,你在哪里创建文本框?它们必须被创建并可用于回发,以便将它们的值作为控件读取。 –
文本框在page_load中创建。在我的搜索中,我发现了你说的这个“回发”,但我完全不理解它。也许你可以对此有所了解? – shredder
如果您想做几乎任何事情,“Postback”是理解ASP.NET最重要的事情之一。这是表单发回到它所发自的相同URL的时间。部分ASP在回发期间的工作是从http post集合中的值重新填充控制值。如果该控件在该点不存在,则不会被填充。如果你想在asp.net中做任何严肃的事情,我会**高度推荐你阅读关于asp生命周期的更多内容。 –