我知道这个问题已经被问过几千次了,之前我一直在努力,但由于某种原因,我无法完成我想完成的任务......我有一个动态添加的LinkButton,点击后会动态添加一个控件(在本例中为一个文本框)到同一个面板。其目的是不断添加与LinkButton点击次数相同的控件(即,我点击一次,一个框,然后再次点击会给我2个框,另一个点击会添加一个第三个)。在下面的代码中,我使用序列化的当前日期和时间为每个文本框控件创建一个唯一的ID。ASP.NET动态创建控件和Postback
当我执行代码时,单击“添加过滤器”将会生成一个新的文本框,但是一旦再次单击将创建一个新的文本框,并在其之前处理该文本框。相反,我想坚持以前的文本框以及其中提交的任何数据。
您的帮助表示赞赏。
在ASPX:
<asp:Panel ID="pnlFilter" runat="server">
</asp:Panel>
在aspx.cs:
protected void Page_Init(object sender, EventArgs e)
{
LinkButton lb = new LinkButton();
lb.ID = "lbAddFilter";
pnlFilter.Controls.Add(lb);
lb.Text = "Add Filter";
lb.Click += new EventHandler(lbAddFilter_Click);
}
void lbAddFilter_Click(object sender, EventArgs e)
{
TextBox tb = new TextBox();
tb.ID = "tb" + DateTime.Now.ToBinary().ToString();
pnlFilter.Controls.Add(tb);
}
在某个应用程序中创建问卷(民意调查)并通过网络服务 呈现的情况下,您会做什么?网站会提取投票并为其显示字段? 在这种情况下动态创建内容是唯一合适的选项不是? – Sander 2011-05-31 09:14:26
是的,动态创建内容是按顺序的,但它不必像我试图做的那样是渐进的;我假设您的网络服务每次都会返回所有结果,在这种情况下,您每次都会呈现所有结果。通过使用视图状态和缓存,你的表现应该很好。 – 2011-05-31 16:23:01
你是个天才。我试图实现与OP相同的功能,但是这让我意识到我可以不添加多个控件实例,只需在模式窗口中显示新控件,并在她的模式中“保存”,提交到数据存储区并然后很容易地加载到页面上。一千谢谢你。我已经花了3天时间,今天晚上都试图弄清楚这一点。 – 2014-07-23 14:30:36