gpt4 book ai didi

ASP.NET 动态创建控件和回发

转载 作者:行者123 更新时间:2023-12-03 20:01:25 25 4
gpt4 key购买 nike

我知道这个问题已被问过数千次,我之前也曾为此苦苦挣扎过,但由于某种原因,我无法完成我想要完成的任务……我有一个动态添加的 LinkBut​​ton,点击时会动态添加一个控件(在这个例子中,一个文本框)到同一个面板。目的是不断添加与单击 LinkBut​​ton 的次数一样多的控件(即我单击一次,一个框,然后另一次单击将给我 2 个框,另一次单击添加第三个)。在下面的代码中,我使用序列化的当前日期和时间为每个文本框控件创建唯一 ID。

当我执行代码时,单击“添加过滤器”将生成一个新文本框,但再次单击将创建一个新文本框,并处理掉它之前的一个。相反,我想保留以前的文本框以及其中提交的任何数据。

感谢您的帮助。

在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);
}

最佳答案

对于任何试图做这样的事情的人:不要。相反,考虑信息流并了解有更好的方法来做到这一点。输入控件不需要动态创建。它们可以是静态的,并且在填写并提交时,该信息必须到某个地方(例如数据库、缓存、 session )。一旦到达那里,在回发时,循环浏览您选择的存储中的所有项目并为它们创建一个显示。

这就是我所做的,它使生活变得更加轻松。希望它可以帮助某人。

关于ASP.NET 动态创建控件和回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com