代码之家  ›  专栏  ›  技术社区  ›  Azhar

我们只能在page_prerender event中编写哪种代码?

  •  2
  • Azhar  · 技术社区  · 15 年前

    我在google上搜索关于page prerender的内容,即我们如何使用page prerender而不是page prerender,或者我们无法使用page prerender并且必须使用page prerender的场景,但是我发现的每一个地方,

    The point at which the objects are prerendered is the last time changes to the objects can be saved or persisted to viewstate. This makes the PreRender step a good place to make final modifications, such as changing properties of controls or changing Control Tree structure, without having to worry about ASP.NET making changes to objects based off of database calls or viewstate updates. After the PreRender phase those changes to objects are locked in and can no longer be saved to the page viewstate. The PreRender step can be overridden using OnPreRender “。

    但我不明白在页面加载和预呈现中我们不能做什么样的更改。

    如我所知,在页面\u preinit上,我们可以动态创建控件,更改或分配母版页或主题,而这些在页面\u load或init之后是无法实现的。

    但是关于page_prerender,我们只能在page_prerender中做些什么呢?

    3 回复  |  直到 15 年前
        1
  •  0
  •   loxxy    15 年前

    某些事件在页面加载事件之后触发。有些是显而易见的,而另一些则不然。这是因为这些活动只能在娱乐后进行(或者更确切地说是在加载后)。例如,如果您希望注册一段客户机脚本,那么最好的地方就是页面呈现。或者,可以理解为在呈现阶段已经调用了page.validate方法,该方法可以在page_load中有目的地调用以验证控件。

    同样,只有当关联的控件准备好呈现时(完全针对用户的浏览器)才能工作的某些其他控件。

        2
  •  0
  •   Lazarus    15 年前

    这不是你能做什么的问题 只有 do在page_prerender中,控件之间可能存在依赖关系,只有在page_load中处理完所有事件后才会变得明显。

        3
  •  0
  •   Sidharth Panwar    15 年前

    page_prerender事件可用于指定对控件的HTML呈现所做的更改。 Load和PreRender之间的一个重要区别是,在激发控件事件之前运行Load,并在控件事件之后调用PreRender。 因此,如果基于控件事件代码,您希望更改输出HTML,那么可以在prerender事件中进行更改。

    另一个需要注意的重要事项是,页面对象在页面对象上引发prerender事件,然后递归地为每个子控件执行相同的操作。单个控件的prerender事件发生在页面的prerender事件之后。因此,这就增加了如何修改特定控件的呈现的杠杆。这在页面加载中是不可能的。

    如果您使用自定义/用户控件,并且控件的呈现是由您完成的,则也可以使用它。

    推荐文章