1

我有一个问题,我似乎无法找到解决方案,即使有非常相似的问题。

基本上我有在我的 Page_Load 方法中以编程方式创建的文本框。它们填充了来自某些 cookie 的值。

然后我有一个“更新”按钮,当点击它时,应该更新加载到文本框中的 cookie。

所以我给了文本框的ID,和cookie同名,然后在更新按钮的On_Click方法上,循环遍历文本框,用文本框中的值更新cookie(ID名称)。

但是,这是行不通的。我尝试过的如下。

控件只是在 onload 方法中创建的。然后,当您在更改文本框后单击按钮时,再次调用 onload 方法,从而将文本框更改回原来的状态并按原样更新它。

控件是在检查后在 onload 方法中创建的if (!Page.IsPostBack)。这不起作用,因为首先调用页面加载方法并且不会在屏幕上创建控件。你的左边是一个空白屏幕,没有更新的 cookie。

我试过EnableViewState哪个不起作用,我尝试自己创建控件(Page.IsPostBack)但仍然没有。

有任何想法吗?

4

2 回答 2

3

if (!Page.IsPostBack)Yuo 应该在 onLoad 方法中创建控件,并在代码块内给它们初始值 。这样,您将每次都创建控制树,但您不会重新初始化丢失更新值的值。

于 2011-11-21T11:00:27.440 回答
1

您应该在 Init 事件期间创建控件,并且您需要在每次加载时都这样做(不要检查 IsPostBack)。为了让这些控件引发回发并从视图状态设置它们的属性,它们需要在触发事件之前位于页面层次结构中。

如果您只是在 Init 期间创建控件,然后仅在检查 IsPostBack 后在 Load 事件中设置数据,那么它们将保留在网站上输入的文本,因为它们将首先被初始化,然后从 viewstate 数据中填充。

于 2011-11-21T18:00:22.510 回答