在DayPilot Lite日历的每个事件中显示更多数据 - ASP.NET Webforms

时间:2015-05-06 10:08:45

标签: asp.net webforms calendar daypilot

在我的DayPilot Calendar(Lite)中,它当前显示来自数据库中一列的数据,该列设置为DataTextField。如何为每个事件添加更多数据,以便用户可以从数据库中查看每个事件的更多数据?

我目前将此套装作为我日历的属性:

 OnBeforeEventRender="DayPilotCalendar1_BeforeEventRender"

在后面的代码(C#)中,我有这个函数来看它是如何工作的。

protected void DayPilotCalendar1_BeforeEventRender(Object sender, BeforeEventRenderEventArgs e)
{
    e.Html += "Test String";

}

这只是在数据库中添加拉取数据后面的字符串。

所以我的日历显示的是:

DataTextField="eventTitle"

活动的名称是日历中显示的内容。我想要的是,日历显示的不仅是事件名称,还包括安排事件的人员的位置,时间,姓名,这些都是从数据库中提取的。

我的select sql语句已选中所有这些数据,但如何使用此数据向文本字段添加更多数据?

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以使用e.DataItem属性访问数据源项目:

protected void DayPilotCalendar1_BeforeEventRender(object sender, DayPilot.Web.Ui.Events.Calendar.BeforeEventRenderEventArgs e)
{
    if (e.DataItem.Source != null)
    {
        string location = e.DataItem["location"] as string;
        string person = e.DataItem["person"] as string;
        e.Html = e.Text + ", location: " + location + ", person: " + person;
    }
}

一些注意事项:

  • 这假设数据源中有“location”和“person”字段。
  • 这要求在初始页面加载 PostBacks期间重新加载数据。如果您不在PostBack上重新加载数据,它将从ViewState加载,并且e.DataItem将无法访问(e.DataItem.Source将为null)。
相关问题