我有一个简单的UserControl,我想在每个日历单元格中呈现。我想通过传递更改UserControl上公开的一些属性来基于数据集呈现不同的信息。由于某种原因,这是行不通的。我想知道页面循环是否阻止它正常工作,因为如果我在PageLoad事件上加载控件似乎有效。
例如。
protected void Cal1_DayRender(object sender, DayRenderEventArgs e)
{
foreach (var item in MyDataSet.Where(s=>s.AvailibilityDate.Date == e.Day.Date))
{
//the days match. Render a the usercontrol setting some property values to alter the rendering of the control
MyUserControl userControl = Page.Loadcontrol("~/UserControls/MyUserControl.ascx") as MyUserControl;
if(userControl != null)
{
//set the properties
userControl.DisplayText = item.PersonsFullName;
e.Cell.Controls.Add(userControl );
}
}
}
UserControl包含一个名为DisplayText的属性,该属性将值设置为OnInit方法中文字控件的文本值。
任何想法??
提前致谢。
答案 0 :(得分:0)
在研究完之后,似乎DayRender事件在页面生命周期中发生得太晚,无法添加带事件的控件。这就是我的init方法没有触发和更新文字控件文本值的原因。
看起来我可能需要编写一个简单的类并覆盖ToString()方法来写出必要的HTML。
答案 1 :(得分:0)
查看我的answer类似问题。我找到了一种方法,但它并不漂亮。