请问 怎样动态添加服务器控件呢?比如TextBox控件。

raynichine 2009-07-14 08:23:54
我是新手,请多多指教了。

后面coding时,
想在一个循环语句中,
不断的新增TextBox控件,并添加到前台的 panel 或<div runat="server">之类。

比如,循环有5个,将新增5个textbox控件 到前台。

      for (int i = 0; i < 5; i++)
{
TextBox tb = new TextBox();
tb.ID = "txt" + i.ToString();
tb.Text = "txttest“;

panel1.Controls.Add(tb);
//或者用 divtest(前台让它runat server) btndiv.InnerHtml.Insert这个方法也实现不了。
}




我该怎样写来实现呢?先谢谢了!




...全文
61 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
raynichine 2009-07-14
  • 打赏
  • 举报
回复
如果结帐,就不能回复了吗?
raynichine 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lambober 的回复:]
你可以在选择MultiView的事件中,加载添加文本框的的方法啊
[/Quote]
当时就是这样的! 非常谢谢!

我在MultiView 的onPreRender事件中,引进了这个动态添加TextBox的方法。果然可以出现在MultiView的<view>属性里面了!

而我原来把那个方法放在Page_Load的 !isPostBack里面了。
(我猜,如果直接放在Page_Load,需要先找到第一层的MultiView,再FindControls找到里面的Panel,才能ADD成功。——是这样的吗?如果达人有时间,简单和我这种新人说一下底层运行的东西好么?)
xsm545 2009-07-14
  • 打赏
  • 举报
回复
顶.顶...
lambober 2009-07-14
  • 打赏
  • 举报
回复
你可以在选择MultiView的事件中,加载添加文本框的的方法啊
raynichine 2009-07-14
  • 打赏
  • 举报
回复
非常谢谢各位指点。

原来,我之前把Pannel 放在MultiView控件的<View>里面。所以出不来。
而放在MultiView的外面。则能Add成功。

但为什么在MultiView里面不行呢?我本来就为了这个而用的啊。
谢谢!
oec2003 2009-07-14
  • 打赏
  • 举报
回复

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



protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
TextBox tb = new TextBox();
tb.ID = "txt" + i.ToString();
tb.Text = "txttest";
div.Controls.Add(tb);
}
}
cq139514 2009-07-14
  • 打赏
  • 举报
回复
panel1 解析后就是div呀 你的代码没错呀!
chen_ya_ping 2009-07-14
  • 打赏
  • 举报
回复
div1.Controls.Add();div1也是用Controls.Add()的
lambober 2009-07-14
  • 打赏
  • 举报
回复
你可以用js来添加几个文本框,然后后台用Request.Form的方式读取

用textbox的话,每次page_load 的时候就没了

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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