我有這8個文本框,但是當我開始認爲它在我的頁面上非常混亂時。所以,我想如何實現一個按鈕,可以添加文本框,當用戶點擊它。這裏有人有想法或解決方案來幫助我嗎?我將不勝感激。謝謝。如何自動添加文本框
回答
如果你考慮使用jQuery,事情可能會很簡單:
<div id="text_box_container"> </div>
<input type="button" value="text box inserter" id="text_box_inserter" />
現在的JavaScript/jQuery的一部分
$('#text_box_inserter').click(function(){
$('#text_box_container').append('<input type="text" />');
})
這將創建一個文本框,並將其與id="divFirstName"
添加到div
。該div
應該有runat="server"
TextBox tbFirstName = new TextBox();
tbFirstName.ID = "tbFirstName";
tbFirstName.Attributes.Add("Name", "tbFirstName");
divFirstName.Controls.Add(tbFirstName);
然後,只需將代碼放在點擊事件。 (我知道我的命名很糟糕,純粹是爲了更好的理解)。
謝謝。但是,我可以知道,點擊事件要放什麼? – 2012-02-28 09:48:34
我不確定我明白你的意思。如果你有一個應該添加更多文本框的按鈕,那麼就把上面的代碼放在按鈕的click事件方法中。如果我現在感到困惑,那就讓我知道,然後編輯我的原始答案。 – AndersDaniel 2012-02-28 09:52:40
哈哈。我想,也許我應該睡一會兒。我只是花了8小時在我的筆記本電腦上無影無蹤。但無論如何,謝謝!將更新一次,我試過雅編碼:) – 2012-02-28 09:56:41
可能最好的方法是將兩個文本框放在用戶控件中。然後該用戶控件可以封裝屬於兩個文本框的所有邏輯;它可以計算兩個值之間的差異,例如,封裝所有的驗證等等等等。你只需要寫一次這個位!
爲您的頁面添加佔位符;給它一個「DynamicControlHolder」或類似的ID。您還需要一個隱藏字段 - DynamicControlCount - 您可以使用它來存儲您添加的動態控件的數量。
兩個最重要的概念是:
- 添加dynamic controls在right時間
- 嘗試和maintain回傳之間的 ID是如此ASP.Net自動填充從ViewState中的值 你。否則,你必須自己管理這個 。
所以,當頁面加載的第一次,你可以不喜歡在Page_Init以下,例如:
{
MyUserControl control = Page.LoadControl("~/path_to_my_usercontrol");
control.ID = "MyUserControl1";
DynamicControlCount.Value = "1";
DynamicControlHolder.Controls.Add(control);
}
如果你再有你的頁面上的一個按鈕,「添加控件」,然後,單擊處理程序:
{
int controlCount = Convert.ToInt32(DynamicControlCount.Value);
controlCount++;
//This section will add as many controls as i.
for(i = 1; i <= controlCount; i++)
{
MyUserControl control = Page.LoadControl("~/path_to_my_usercontrol");
control.ID = String.Format("MyUserControl{0}", i);
DynamicControlHolder.Controls.Add(control);
}
DynamicControlCount.Value = Convert.ToString(controlCount); //Note this is problematic
}
控制第二部分的最簡單方法是使用UpdatePanel。造成這種情況的主要原因是,當您更新控件的數量時,您在頁面的生命週期中做得這麼晚,並且在完整回發中,該值可能無法按您期望的回發方式遞增。對於用戶來說,如果整個頁面沒有被髮回來修改其中的一小部分,它也看起來更好。
這些只是一些讓你開始的想法。對於這種事情一個很好的參考是在這裏:
Truly Understanding Dynamic Controls
你應該做一些解決這個讀數,因爲視圖狀態,頁面生命週期,客戶端渲染和其他因素的結合使最棘手的這一個,但最有趣的技術在ASP.Net
- 1. 自動添加文本框
- 2. 如何動態添加文本框?
- 3. 如何爲文本框添加多項自動完成功能?
- 4. 如何將自動填充添加到蒙面文本框?
- 5. 動態添加文本框
- 6. 如何自動化電話號碼區號自動添加的文本框?
- 7. 將文本添加到自動標籤和文本框vb.net
- 8. 如何防止添加文本時滾動多行文本框?
- 9. 動態添加文本框中的自動完成
- 10. 自動完成功能無法動態添加文本框
- 11. Mschart添加自定義文本框
- 12. 添加文本框
- 13. 添加文本框
- 14. 添加文本框
- 15. 如何從文本框添加文本到組合框?
- 16. 如何JavaScript值添加到文本框
- 17. 如何在文本中添加邊框?
- 18. 如何ID添加到autogenerafted文本框
- 19. 關閉tabitem。如何添加文本框?
- 20. 如何將datetimepicker添加到文本框?
- 21. ExtJs3如何添加微調文本框
- 22. 動態添加文本框以動態添加面板
- 23. 添加按鈕,動態也添加文本框,動態AngularJS
- 24. gwt動態添加文本框
- 25. 動態添加文本框,並在MySQL
- 26. Javascript動態添加文本框值
- 27. 添加和刪除動態文本框
- 28. 添加文本框的動態JavaFX中
- 29. 在asp.net中動態添加文本框
- 30. 動態添加文本框使用PHP
可能重複的[JQuery的 - 創建隱藏的表單元素上飛](http://stackoverflow.com/questions/2408043/jquery-create-hidden-form-element-on-the -飛)。或者你想要服務器端?然後看看[這裏](http://www.singingeels.com/Articles/Dynamically_Created_Controls_in_ASPNET.aspx)。 – CodeCaster 2012-02-28 09:34:56
嘗試看看這裏:http://stackoverflow.com/questions/4630095/dynamic-textbox-on-linkbutton-click – 2012-02-28 09:35:19
如果可能的話,我想按鈕生成兩個文本框。 1的費用類型,另一個是價格。 tq – 2012-02-28 09:36:59