我有一个包含用户控件ucStatusBar
的母版页。 ucStatusBar
有一个公开方法setStatus()
。该方法只是通过传入的字符串param更新控件中的<asp:label />
。
母版页内容页面是 Summary.aspx 。 Summary.aspx 具有用户控件ucNewEvent
。保存表单ucNewEvent
并返回成功或失败代码时,我尝试使用成功或失败消息更新ucStatusBar
。我可以调用ucStatusBar.setStatus("success message")
,但是当null
由于某种原因setStatus
试图设置标签b / c的Text
属性时,我在运行时得到<asp:label />
引用异常{{1}是null
。为什么会null
?有没有更好的方法来实现这一目标?
答案 0 :(得分:1)
只是一个猜测,但我认为您正在尝试从Text
事件(或从其中调用的某个函数)中设置Page_Load
属性。
ASP.NET编程完全是关于时序的,这意味着你真的,真的需要理解Page Life Cycle。您可能在加载完成之前尝试访问用户控件。
通常,最好严格使用Page_Load
事件来解析请求(Server.Request
)。获取所需信息,将其保存到类变量中,然后在LoadComplete
或PreRender
事件中设置控件属性等。