0

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

我目前将此设置为我的日历的属性:

 OnBeforeEventRender="DayPilotCalendar1_BeforeEventRender"

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

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

}

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

所以我的日历显示的是这样的:

DataTextField="eventTitle"

事件的名称是日历中显示的内容。我想要的日历显示的不仅是事件名称,还有地点、时间、安排事件的人的姓名,这些都是从数据库中提取的。

我的 select sql 语句已经选择了所有这些数据,但是如何使用这些数据向文本字段添加更多内容?

我怎样才能做到这一点?

4

1 回答 1

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;
    }
}

几点注意事项:

  • 这假设“位置”和“人员”字段在数据源中可用。
  • 这需要在初始页面加载PostBacks 期间重新加载数据。如果您不重新加载 PostBack 上的数据,它将从 ViewState 加载,并且 e.DataItem 将无法访问(e.DataItem.Source 将为空)。
于 2015-05-06T10:41:01.260 回答