2010-06-21 55 views
1

对于处理.NET框架模型我相当陌生,因此任何帮助/建议都将非常感谢。基本上我想从母版页调用用户控件。但是,我需要将对象(更具体的对象列表)传递给用户控件。我在主页面的Page_Load中生成对象列表。这是我的母版页中调用用户控件的行。将参数传递给Page_Load中的用户控件

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

此用户控件具有一个名为CalendarItems的参数,该参数接受项目列表。但是,如果我尝试在Page_Load方法内部设置它,我的控件在Page_Load之前执行,并引发一个说明CalendarItems为空的异常。有没有办法解决?

编辑:
要尽量帮助澄清。我在这个页面上有一个下拉列表,它决定了CalendarItems的列表是什么,当我填充CalendarItems列表时,我需要能够从下拉列表中读取选定的值。

回答

2

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

1

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

+0

您也可以在创建控件时将列表设置为新的空列表以避免发生异常,然后像现在一样填充它。这可能需要额外的方法调用才能重建您的日历,具体取决于您的代码的外观。 – jaltiere 2010-06-21 19:02:55

相关问题