Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式添加web控件时的回发问题_C#_Asp.net_Webforms_Dynamic Controls - Fatal编程技术网

C# 以编程方式添加web控件时的回发问题

C# 以编程方式添加web控件时的回发问题,c#,asp.net,webforms,dynamic-controls,C#,Asp.net,Webforms,Dynamic Controls,我有一个问题,我似乎找不到解决办法,即使有非常类似的问题 基本上,我有一些文本框,它们是在我的页面加载方法中通过编程创建的。它们被某些cookie中的值填充 然后,我有一个“更新”按钮,当单击该按钮时,应该会更新加载到文本框中的cookie 因此,我给出了文本框的ID,与cookie的名称相同,然后在更新按钮的on_Click方法上,我在文本框中循环并使用文本框中的值更新cookie(ID名称) 然而,这是行不通的。我所做的尝试如下 这些控件只是在onload方法中创建的。然后,当您在更改文本框

我有一个问题,我似乎找不到解决办法,即使有非常类似的问题

基本上,我有一些文本框,它们是在我的页面加载方法中通过编程创建的。它们被某些cookie中的值填充

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

因此,我给出了文本框的ID,与cookie的名称相同,然后在更新按钮的on_Click方法上,我在文本框中循环并使用文本框中的值更新cookie(ID名称)

然而,这是行不通的。我所做的尝试如下

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

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

我尝试了
EnableViewState
,但没有成功,我尝试了在
(Page.IsPostBack)
时自己创建控件,但仍然没有任何效果


有什么想法吗?

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

Yuo应在onLoad方法中创建控件,并在
if(!Page.IsPostBack)
代码块中为它们提供初始值。这样,您每次都会创建控件树,但不会在没有更新值的情况下重新初始化值。

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


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

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


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

您真的确定需要像这样以编程方式创建控件吗?你让事情变得更难了。如果需要控件的动态编号,最简单的方法是使用
中继器
。如果你确实需要继续这样做,这一系列的博客文章将非常有帮助:2800_Part-1_2900.aspxIll查看转发器。从没听说过。我通常从不以编程方式创建控件,只是在这种情况下,我永远不会知道页面上有多少控件。你真的确定需要像这样以编程方式创建控件吗?你让事情变得更难了。如果需要控件的动态编号,最简单的方法是使用
中继器
。如果你确实需要继续这样做,这一系列的博客文章将非常有帮助:2800_Part-1_2900.aspxIll查看转发器。从没听说过。我通常不会以编程方式执行控件,只是在这种情况下,我永远不会知道页面上有多少个控件。+1使用onLoad的好处是,您可以访问页面上其他控件的值,同时新控件在回发时会设置它们的值。+1使用onLoad的好处是,您可以访问页面上其他控件的值,同时在回发时设置新控件的值。