【发布时间】:2011-11-21 10:53:20
【问题描述】:
我有一个问题,我似乎找不到解决方案,即使有非常相似的问题。
基本上,我有在我的 Page_Load 方法中以编程方式创建的文本框。它们填充了来自某些 cookie 的值。
然后我有一个“更新”按钮,当单击该按钮时,应该会更新加载到文本框中的 cookie。
所以我给了文本框的ID,和cookie同名,然后在更新按钮的On_Click方法上,循环遍历文本框,用文本中的值更新cookie(ID名)盒子。
但是,这不起作用。我尝试过的如下。
这些控件只是在 onload 方法中创建的。然后,当您在更改文本框后单击按钮时,再次调用 onload 方法,从而将文本框更改回原来的状态并按原样更新。
在检查if (!Page.IsPostBack) 后,在onload 方法中创建控件。这不起作用,因为首先调用页面加载方法并且不会在屏幕上创建控件。您的左侧是空白屏幕,并且没有更新的 cookie。
我尝试了EnableViewState,但没有成功,我尝试在(Page.IsPostBack) 时自行创建控件,但仍然没有。
有什么想法吗?
【问题讨论】:
-
您真的确定需要像这样以编程方式创建控件吗?你让自己的事情变得更加困难。如果您需要控件的动态编号,最简单的方法是使用
Repeater。如果您确实需要继续这样做,这一系列的博客文章将有很大帮助:weblogs.asp.net/infinitiesloop/archive/2006/08/25/…2800_Part-1_2900.aspx -
我会调查中继器。甚至从未听说过。我通常从不以编程方式进行控制,只是在这种情况下,我永远不会知道页面上有多少。
标签: c# asp.net webforms dynamic-controls