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

Show more data in each event of DayPilot Lite Calendar - ASP.NET Webforms

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

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

 OnBeforeEventRender="DayPilotCalendar1_BeforeEventRender"

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

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

}

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

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

DataTextField="eventTitle"

活动的名称就是日历中显示的名称。我要让日历显示的不仅仅是事件名称,还有地点、时间、安排事件的人的名字,这些都是从数据库中拉出来的。

我的 select sql 语句已经包含所有这些数据 selected,但是如何使用这些数据向文本字段添加更多数据?

我怎样才能做到这一点?

您可以使用 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 将为空)。