【问题标题】:Show more data in each event of DayPilot Lite Calendar - ASP.NET Webforms在 DayPilot Lite 日历的每个事件中显示更多数据 - ASP.NET Webforms
【发布时间】:2015-07-16 09:47:13
【问题描述】:

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

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

 OnBeforeEventRender="DayPilotCalendar1_BeforeEventRender"

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

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

}

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

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

DataTextField="eventTitle"

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: asp.net webforms calendar daypilot


    【解决方案1】:

    您可以使用 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-06-16
      • 2020-07-14
      • 2017-10-06
      • 1970-01-01
      • 2017-10-14
      • 2016-01-04
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      相关资源
      最近更新 更多