C# 如何自动添加文本框
我有这8个文本框,但当我开始觉得我的页面非常混乱时。所以,我在想,如何实现一个按钮,可以添加文本框时,用户点击它。这里有人有什么想法或解决办法来帮助我吗?我将不胜感激。谢谢。 如果考虑使用jQuery,事情可能非常简单:C# 如何自动添加文本框,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我有这8个文本框,但当我开始觉得我的页面非常混乱时。所以,我在想,如何实现一个按钮,可以添加文本框时,用户点击它。这里有人有什么想法或解决办法来帮助我吗?我将不胜感激。谢谢。 如果考虑使用jQuery,事情可能非常简单: <div id="text_box_container"> </div> <input type="button" value="text box inserter" id="text_box_inserter" /> 现在是java
<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);
然后只需将代码放在单击事件中。
(我知道我的命名很糟糕,纯粹是为了更好地理解。)最好的方法可能是将两个文本框都放在用户控件中。然后,该用户控件可以封装属于这两个文本框的所有逻辑;它可以计算两个值之间的差异,例如,封装两个值的所有验证等。您只需写入此位一次 在页面中添加占位符;给它一个“DynamicControlHolder”或类似的id。您还需要一个隐藏字段DynamicControlCount,您可以使用它来存储添加的动态控件的数量 两个最重要的概念是:
- 在当时添加
- 试试看 id在回发之间,因此ASP.Net会自动填充这些值 从ViewState为您创建。否则,您将不得不处理此问题 你自己
{
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
}
{
int controlCount=Convert.ToInt32(DynamicControlCount.Value);
controlCount++;
//本节将添加与我一样多的控件。
对于(i=1;我可能是的副本。或者你想要它服务器端吗?然后看一个例子。试着看这里:如果可能的话,我想要按钮生成两个文本框。1表示费用类型,另1表示价格。TQ你想要用javascript完成吗?或者你能接受回发并使其成为服务器端吗?我更喜欢回发使用javascript标记,因为大多数自动生成文本框都使用java。谢谢。但是我能知道,在click event中放什么吗?我不确定我是否理解你的意思。如果你有一个按钮应该添加更多文本框,那么只需将上面的代码放在按钮的click event方法中。如果我现在把你搞糊涂了,请告诉我,我会告诉你编辑我的原始答案。哈哈。我想,也许我应该睡一觉。我只是花了8个小时在我的笔记本电脑上主演《无厘头》。但无论如何,谢谢!一旦我尝试编码,就会更新:)