将参数传递给Page_Load的用户控件

时间:2010-06-21 18:42:43

标签: asp.net

我对.NET框架模型的做法相当新,所以任何帮助/建议都会非常感激。基本上我想从母版页调用用户控件。但是,我需要将一个对象(一个对象列表更具体)传递给用户控件。我正在母版页的Page_Load中生成对象列表。这是我的母版页中调用用户控件的行。

<cu:Eventlisting1 runat="server" id="eventListing1"></cu:Eventlisting1>

此用户控件有一个名为CalendarItems的参数,用于接受项目列表。但是,如果我尝试在Page_Load方法中设置它,我的控件在Page_Load之前执行,并抛出一个异常,说CalendarItems为null。有没有办法解决这个问题?

修改
试图帮助澄清。我在这个页面上有一个下拉列表,它确定了CalendarItems的列表是什么,所以当我填充CalendarItems列表时,我需要能够从下拉列表中读取所选的值。

2 个答案:

答案 0 :(得分:2)

您可以从setCalendarItems调用initControl函数(现在导致异常的代码)。 我通常更喜欢滥用页面生命周期(使用Page.Init),因为这可能会导致其他问题(viewstate等)。 在设置CalendarItem之后,在usercontrol中定义initControl函数并从控制器(Page或Masterpage)调用它可能是最好的,因为你保持尽可能多的控制(比从属性调用initControl更好)。

答案 1 :(得分:1)

尝试在页面的Init方法中填充列表,您的控件将被加载并在页面加载事件发生之前发生。