动态文本框添加按钮点击和数据会话 asp.net
Dynamic Text Box Add on button click and data session in asp.net
问题更新
我正在使用这段代码在单击按钮时添加多个标签。
但是每次它都会给出计数值 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;
我现在想要的是如何以更方便的方式将每个控件的数据绑定到它。
这是因为它是一个 Web 应用程序,因此会话不会保留,因为 Web 应用程序本质上是无状态的。因此,每 post 返回一个新的页面实例,其中 int count
是 0
。解决方案:使用 Session
存储数据以供将来重复使用,如
int count = pnlControl.Controls.OfType<Label>().ToList().Count;
Session["count"] = count;
根据post返回请求
取回
if(Session["count"] != null)
count = (int)Session["count"];
动态控件在每个 PostBack 上都会丢失,因此您需要在某处跟踪已创建的控件,并在重新加载页面时重新创建它们。
在这里查看我的回答:
它是关于按钮的,但基本原理是一样的。只需将 Button 替换为 Label 即可。
问题更新
我正在使用这段代码在单击按钮时添加多个标签。 但是每次它都会给出计数值 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;
我现在想要的是如何以更方便的方式将每个控件的数据绑定到它。
这是因为它是一个 Web 应用程序,因此会话不会保留,因为 Web 应用程序本质上是无状态的。因此,每 post 返回一个新的页面实例,其中 int count
是 0
。解决方案:使用 Session
存储数据以供将来重复使用,如
int count = pnlControl.Controls.OfType<Label>().ToList().Count;
Session["count"] = count;
根据post返回请求
取回if(Session["count"] != null)
count = (int)Session["count"];
动态控件在每个 PostBack 上都会丢失,因此您需要在某处跟踪已创建的控件,并在重新加载页面时重新创建它们。
在这里查看我的回答:
它是关于按钮的,但基本原理是一样的。只需将 Button 替换为 Label 即可。