我已經爲我的asp.net頁面以下要求:如何在ASP.NET中動態添加文本框?
用戶可以通過點擊鏈接頁面的動態添加一個文本框的「添加新類別」超級鏈接
他點擊提交按鈕在頁面A並被重定向到頁面B.
當他點擊此頁面上的頁面鏈接時,他添加的文本框應該被保留。
有人可以幫我解決這個問題嗎?
感謝您的幫助!
我已經爲我的asp.net頁面以下要求:如何在ASP.NET中動態添加文本框?
用戶可以通過點擊鏈接頁面的動態添加一個文本框的「添加新類別」超級鏈接
他點擊提交按鈕在頁面A並被重定向到頁面B.
當他點擊此頁面上的頁面鏈接時,他添加的文本框應該被保留。
有人可以幫我解決這個問題嗎?
感謝您的幫助!
在ButtonClick方法中寫入。
TextBox tb = new TextBox();
Parent.Controls.Add(tb);
家長是您要添加的文本框,例如面板的控制。您可以查看this resource。
希望它有幫助。
動態添加用戶控件非常簡單。但在這種情況下,我認爲你不需要這樣做,而應該考慮在其中創建一個帶有文本框的中繼器,並且當用戶單擊添加類別時,將一個項目添加到中繼器數據源。
這樣你就可以同時處理控件創建和狀態持久化。
正如其他人所說的動態添加文本框是相當直接的,只需創建文本框並將其添加到控件集合,無論您需要它顯示。然後,您需要存儲此用戶獲取此附加文本框的信息。假設這是長期的,您需要將這些信息存儲在後端存儲中。無論何時構建頁面,都需要先閱讀商店信息以查看要創建的文本框。
我會建議如下做。在Onload事件中,如果您之前沒有這樣做,請從數據庫中加載動態信息。將所有必要的控件添加到頁面並將這些信息存儲在視圖狀態中。在任何後續回發中,從視圖狀態讀取信息以添加其他控件。這將使您無需在每次回發時不斷從數據庫中讀取數據。
處理動態用戶控件可能是一個痛苦的屁股。
作爲我遵循的經驗法則,無論何時你創建一個動態用戶控件,那麼你必須設置它的ID,以便ASP.net可以在回發時重新分配它,並且在回發後保留控件值,你應該重新加載你的用戶控制Page_Init事件。
希望這有助於。
動態創建文本框:
假設你有網頁這樣
,當你進入框「1」,然後點擊添加按鈕,輸出會像下方顯示一個文本框 .. 我設計了這個樣子,
我有一個文本框和佔位符,用於顯示文本框動態.. 添加按鈕雙擊......在btnadd_click,你必須WRI TE以下代碼
保護無效btnadd_Click(對象發件人,EventArgs的) {
int i;
for (i = 0; i < Convert.ToInt32(txtno.Text); i++)
{
TextBox txtbox = new TextBox();
phtxt.Controls.Add(txtbox);
phtxt.Controls.Add(new LiteralControl("<br>"));
}
}
調試它...和輸出是,
應當注意的是,這必須是在Init事件之前或期間完成,或者ViewState不會跟蹤對控件的更改。 – FlySwat 2009-04-10 15:33:32