【问题标题】:Why control's DataBind is called before control's Page_Load method?为什么控件的 DataBind 在控件的 Page_Load 方法之前被调用?
【发布时间】:2013-07-06 17:23:16
【问题描述】:

我有一组相互嵌套的控件。最顶层的控件在 Page_Load 中有“DataBind()”方法调用,它会触发内部控件的 DataBind() 方法调用。

我认为 PageLoad 应该在触发控件的 DataBind 事件之前完全完成 (http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx)。那是对的吗?

问题是这个内部控件没有加载所有数据(它们应该从初步控件传递)并因此崩溃并出现 NullPointer 异常...

与此相关的问题:

  1. 为什么在控件的 Page_Load 方法之前调用控件的 DataBind?
  2. 如何正确初始化控件数据,以便在 DataBind() 调用最顶层父级之前,所有底部/嵌套控件都将拥有所有必需的数据

谢谢。

【问题讨论】:

  • 不确定。我猜是因为内部控件的可用性在页面加载期间成为一个问题,因此它以一种时髦的顺序呈现。无论如何,您可能应该在外部控件的 OnDataBound/Binding 事件上绑定内部控件的数据源。

标签: asp.net data-binding


【解决方案1】:

看起来初始化是在页面加载和渲染之前发生的。它表示在初始化期间,所有控件都已初始化,或者更确切地说,所有用于呈现这些控件的代码都已运行但尚未绘制控件。如果是这种情况,那么这会在加载之前发生。

尝试在外部控件的 OnDataBound 事件期间执行内部控件的 DataBind。或者如果on依赖于另一个,则在依赖的OnDataBound事件中加载依赖控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 2010-11-22
    • 2011-02-16
    相关资源
    最近更新 更多