用户控制通信

时间:2012-10-16 02:00:59

标签: c# asp.net

我有一个包含用户控件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?有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

只是一个猜测,但我认为您正在尝试从Text事件(或从其中调用的某个函数)中设置Page_Load属性。

ASP.NET编程完全是关于时序的,这意味着你真的,真的需要理解Page Life Cycle。您可能在加载完成之前尝试访问用户控件。

通常,最好严格使用Page_Load事件来解析请求(Server.Request)。获取所需信息,将其保存到类变量中,然后在LoadCompletePreRender事件中设置控件属性等。