以编程方式添加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)
,但仍然没有。
任何想法?
你应该在onLoad方法中创建控件,并在if (!Page.IsPostBack)
代码块中给它们初始值。这样,每次都可以创建控件树,但不会重新初始化丢失更新值的值。
你应该在Init事件期间创建控件,并且你需要在每次加载时都这样做(不要检查IsPostBack)。为了使这些控件引发回发并从视图状态设置其属性,它们需要在事件触发之前位于页面层次结构中。
如果你只是在初始化期间创建控件,然后在检查IsPostBack后仅在Load事件中设置数据,那么它们将保留在网站上输入的文本,因为它们将首先被初始化,然后从视图状态数据填充