Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# 更新动态控件_C#_Asp.net - Fatal编程技术网

C# 更新动态控件

C# 更新动态控件,c#,asp.net,C#,Asp.net,我从AJAX控件工具包中获得了一个带有手风琴窗格的自定义web部件作为子部件,用于呈现站点地图层次结构。每个窗格包括一个带有文本输入的div和3个用于编辑站点地图数据的链接按钮:“添加子项”、“更新”和“删除” 目前,所有这些控件都是在重写的CreateChildControls方法中创建的 单击“添加子项”链接按钮时,将触发事件处理程序,并将新节点添加到站点地图。回发完成后,控件应使用层次结构中的新空节点重新呈现,但它不会。在新的GET请求之后,新节点出现。在阅读了一段时间后,我认为我的问题是

我从AJAX控件工具包中获得了一个带有手风琴窗格的自定义web部件作为子部件,用于呈现站点地图层次结构。每个窗格包括一个带有文本输入的div和3个用于编辑站点地图数据的链接按钮:“添加子项”、“更新”和“删除”

目前,所有这些控件都是在重写的CreateChildControls方法中创建的

单击“添加子项”链接按钮时,将触发事件处理程序,并将新节点添加到站点地图。回发完成后,控件应使用层次结构中的新空节点重新呈现,但它不会。在新的GET请求之后,新节点出现。在阅读了一段时间后,我认为我的问题是我在创建子控件的过程中太早了,因为CreateChildControls是在触发控件事件之前调用的,所以我将该位移到了OnPreRender方法。但是现在控件事件不会触发,因为我在页面生命周期中连接它们的时间太晚了(请参见此处:)

我的问题是:如何确保自定义控件呈现其子控件事件处理程序的结果


另外,我在web部件而不是自定义服务器控件中执行此操作是否重要(例如,生命周期是否不同)?

您可以在页面的OnInit中调用EnsureChildControl。这将确保在处理任何事件之前重新创建子控件