asp.net后台添加控件

沐雪架构师
企业官方账号
2011-03-17 06:32:20
我前台代码:

<div id="ss" runat="server">

</div>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

后台:

protected void Button1_Click(object sender, EventArgs e)
{
TextBox tb = new TextBox();
this.ss.Controls.Add(tb);
}


我的代码写的好像有问题,
我想要实现的功能为: 每次点击按钮,就添加一个TxtBox。比如点击按钮一次页面有1个TextBox,点第2次,页面上就有2个TextBox。就这功能。请高手赐教。谢谢!给个思路也行,写下源代码更好。
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐雪架构师 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fangxinggood 的回复:]
会比较麻烦。需要保存Id,并在Page_Load时重建

C# code

protected void Page_Load(object sender, EventArgs e)
{
// Rebuild TextBoxs
foreach (var id in dynamicTextBoxIds)
{
TextBox text……
[/Quote]
哇,兄弟,你太强大了。这方法很好用!!谢谢!!
沐雪架构师 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 findcaiyzh 的回复:]
动态创建的控件,Postback后就没有了
需要在Page_Load或者OnInit中重建。
如果想要保持ViewState的话,重建时的ID要和重建前的ID保持一致。
[/Quote]
“重建时的ID要和重建前的ID保持一致。”如何保持一致呢?
沐雪架构师 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liang2sky 的回复:]
this.ss.Controls.Add(tb);
问题在这里
[/Quote]
这里有什么错误呢?
xboxeer 2011-03-22
  • 打赏
  • 举报
回复
JS+AJAX~方便不少
liang2sky 2011-03-19
  • 打赏
  • 举报
回复
this.ss.Controls.Add(tb);
问题在这里
宝_爸 2011-03-18
  • 打赏
  • 举报
回复
动态创建的控件,Postback后就没有了
需要在Page_Load或者OnInit中重建。
如果想要保持ViewState的话,重建时的ID要和重建前的ID保持一致。
机器人 2011-03-18
  • 打赏
  • 举报
回复
会比较麻烦。需要保存Id,并在Page_Load时重建

protected void Page_Load(object sender, EventArgs e)
{
// Rebuild TextBoxs
foreach (var id in dynamicTextBoxIds)
{
TextBox text = new TextBox();
text.ID = id;
text.Text = Request.Form[id];
myDiv.Controls.Add(text);
myDiv.Controls.Add(new LiteralControl("<br>"));
}
}

private List<string> dynamicTextBoxIds
{
set { ViewState["DynamicTextBoxIds"] = value; }
get { return (List<string>)ViewState["DynamicTextBoxIds"] ?? new List<string>(); }
}

protected void Button1_Click(object sender, EventArgs e)
{
TextBox text = new TextBox();
text.ID = "TextBox_" + dynamicTextBoxIds.Count;

List<string> textIds = dynamicTextBoxIds;
textIds.Add(text.ID);
// Save to ViewState
dynamicTextBoxIds = textIds;
myDiv.Controls.Add(text);
myDiv.Controls.Add(new LiteralControl("<br>"));
}
子夜__ 2011-03-17
  • 打赏
  • 举报
回复
指定tb 的ID 和TEXT 在添加

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧