我有这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. 将文本添加到自动标签和文本框vb.net
- 6. 如何防止添加文本时滚动多行文本框?
- 7. 动态添加文本框中的自动完成
- 8. 自动完成功能无法动态添加文本框
- 9. 添加文本框
- 10. 如何从文本框添加文本到组合框?
- 11. 如何ID添加到autogenerafted文本框
- 12. 如何在文本中添加边框?
- 13. 添加按钮,动态也添加文本框,动态AngularJS
- 14. 动态添加文本框以动态添加面板
- 15. 添加和删除动态文本框
- 16. 使用jquery动态添加文本框
- 17. 验证动态添加文本框
- 18. Javascript动态添加文本框值
- 19. 在android中动态添加文本框
- 20. gwt动态添加文本框
- 21. Javascript删除文本框动态添加
- 22. Datepicker问题,动态添加文本框
- 23. 在asp.net中动态添加文本框
- 24. 动态添加文本框,并在MySQL
- 25. 动态添加文本框使用PHP
- 26. 如何在asp.net C#中动态地添加文本框并在添加后使用文本框的值
- 27. 如何自动限制文本框
- 28. 如何在MVC3中添加自动填充文本框更改事件
- 29. 错误:自动计算添加的文本框不应该是
- 30. 自动加载文本框到asp.net detailsview
可能重复的[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