动态文本框在asp.net中添加按钮单击和数据会话

时间:2017-09-07 12:24:02

标签: c# dynamic textbox viewstate

问题更新

我正在使用这段代码在按钮点击时添加多个标签。 但是每次它给出计数值0并且在执行之后只有相同的标签出现。

 int count = (int)ViewState["count"];
        for (int i = 0; i <= count; i++)
        {
            TextBox txtnew = new TextBox();
            txtnew.ID = "label_" + (i + 1);
            txtnew.Text = "label_" + (i + 1);
            ViewState["count"] = i;
            pnlControl.Controls.Add(txtnew);
        }
 ViewState["count"] = count + 1;

我现在想要的是如何以更方便的方式保持每个控件的数据绑定到它。

2 个答案:

答案 0 :(得分:1)

这导致它成为Web应用程序,因此会话未被保留,因为Web应用程序本质上是无状态的。因此,每个帖子都会有一个新的页面实例,其中<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> int count。解决方案:使用0存储数据以供将来重复使用,如

Session

在回发请求中检索它

int count = pnlControl.Controls.OfType<Label>().ToList().Count;
Session["count"] = count;

答案 1 :(得分:1)

每个PostBack都会丢失动态控件,因此您需要在某处跟踪创建的动态控件,并在重新加载页面时重新创建它们。

请在此处查看我的答案:How to dynamically create ASP.net controls within dynamically created ASP.net controls

关于按钮,但基本原理是一样的。只需将Button替换为Label即可使用。