以编程方式添加web控件时的postBack问题

本文关键字:postBack 问题 控件 web 编程 方式 添加 | 更新日期: 2023-09-27 18:15:21

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

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

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

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

然而,这不起作用。我所做的尝试如下:

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

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

我尝试了EnableViewState没有工作,我尝试创建自己的控件时,(Page.IsPostBack),但仍然没有。

任何想法?

以编程方式添加web控件时的postBack问题

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

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

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