我有負荷值,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生命週期的更多內容。 –