Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# 关于在aspx中以编程方式添加控件的几个问题_C#_Asp.net_Page Lifecycle_Dynamic Controls - Fatal编程技术网

C# 关于在aspx中以编程方式添加控件的几个问题

C# 关于在aspx中以编程方式添加控件的几个问题,c#,asp.net,page-lifecycle,dynamic-controls,C#,Asp.net,Page Lifecycle,Dynamic Controls,我只是想问一些关于在aspx中以编程方式添加控件的问题。在做了一些研究之后,我只想确保我正确地理解了这一点 当您尝试以编程方式添加控件时,您应该在页面生命周期的特定阶段执行此操作 是您可以通过编程方式创建和添加控件的最新版本,位于页面\u load 在初始化阶段创建控件是否是最佳做法,是否因为这是在视图状态加载之前 每次回发后,您是否必须继续重新创建控件?或者有没有一种方法可以创建一次并使其持久化 如果您更改视图状态中存在的onInit阶段中的任何控件,当加载视图状态时,是否会自动替换该控件 是

我只是想问一些关于在
aspx
中以编程方式添加控件的问题。在做了一些研究之后,我只想确保我正确地理解了这一点

当您尝试以编程方式添加控件时,您应该在
页面生命周期的特定阶段执行此操作

  • 是您可以通过编程方式创建和添加控件的最新版本,位于
    页面\u load

  • 初始化阶段
    创建控件是否是最佳做法,是否因为这是在
    视图状态
    加载之前

  • 每次回发
    后,您是否必须继续重新创建控件?或者有没有一种方法可以创建一次并使其持久化

  • 如果您更改
    视图状态
    中存在的
    onInit
    阶段中的任何控件,当加载
    视图状态
    时,是否会自动替换该控件

  • 是否添加子控件?例如,如果您尝试添加一个表格,其中充满了按钮的GridView,单击其中一个按钮时是否会出现
    部分回发
    ?如果没有,您应该如何将子控件添加到
    UpdatePanel


  • 这就是我现在能想到的所有问题。你们能给我的任何澄清都会很好

    假设您谈论的是webforms,而不是mvc,那么您可以在生命周期的任何阶段添加新的动态控件。但是,重要的是要记住,每次回发(包括任何服务器端事件)时,您使用的页面实例与第一次添加动态控件的页面实例不同,因为您现在正在为不同的http请求准备响应。一旦你明白了这一点,其他一切都变得更有意义了

    因此,您希望向页面添加一个控件以响应按钮单击。您可以在按钮的单击事件中安全地执行此操作,该事件在页面生命周期中非常晚。但是现在用户做了一些事情来触发另一个帖子。此时,您正在使用与以前不同的page类实例。如果希望动态控件在回发完成后仍在页面上,则必须再次将其添加到页面中。如果还希望为此控件使用ViewState,则必须在Page_Load事件之前(而不是期间)执行此操作。最常见的地方是在Page_Init中


    我认为这涵盖了您的大部分观点。

    假设您谈论的是webforms,而不是mvc,那么您可以在生命周期的任何阶段添加新的动态控件。但是,重要的是要记住,每次回发(包括任何服务器端事件)时,您使用的页面实例与第一次添加动态控件的页面实例不同,因为您现在正在为不同的http请求准备响应。一旦你明白了这一点,其他一切都变得更有意义了

    因此,您希望向页面添加一个控件以响应按钮单击。您可以在按钮的单击事件中安全地执行此操作,该事件在页面生命周期中非常晚。但是现在用户做了一些事情来触发另一个帖子。此时,您正在使用与以前不同的page类实例。如果希望动态控件在回发完成后仍在页面上,则必须再次将其添加到页面中。如果还希望为此控件使用ViewState,则必须在Page_Load事件之前(而不是期间)执行此操作。最常见的地方是在Page_Init中


    我想这涵盖了你的大部分观点。

    这些都是陈述,不是问题。你不明白什么?我没有在结尾打问号,而是写下了一些陈述,我想知道它们是否正确。我是否应该编辑它们,并尝试让它们以问号结尾?他希望这些陈述中的每一个都是真/假。如果你对这些陈述中的每一个都有具体的问题,请提问。我将这些陈述重新写成了问题。希望这有帮助……这些都是陈述,不是问题。你不明白什么?我没有在结尾打问号,而是写下了一些陈述,我想知道它们是否正确。我是否应该编辑它们,并尝试让它们以问号结尾?他希望这些陈述中的每一个都是真/假。如果你对这些陈述中的每一个都有具体的问题,请提问。我将这些陈述重新写成了问题。希望这有帮助。。。