如何在添加新事件时获取事件resourceId

时间:2013-05-14 22:20:46

标签: jquery fullcalendar

我正在尝试手动添加一个新事件(选择一个时间范围)到特定资源,因此我需要在执行它之后将resourceId保存到DB上。如果我使用多个资源,方法select: function (start,end,allDay)只给我时间范围,但不给我resourceId。任何解决方案?

以下编辑

好的,我会尝试更好地解释一下。

我正在使用日历的资源视图,您可以在FullCalendar ResourceView

看到

当我尝试选择时间范围(Select Method)来添加新事件时,我可以获得startTime和endTime,正如您在提供的链接上看到的那样。

但问题是,当我使用多列视图(资源视图)时,我需要resourceId,因此我将使用AJAX将其发送到服务器并将其存储在某处。

我试过了:

这:select: function(start, end, resourceId){alert(resourceId)}, 警报是:false

并且:select: function(start, end, event){alert(event.resourceId)}, 警报是:未定义

对这个简短的问题感到抱歉!

谢谢!

4 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,实际上select方法的资源参数位于第5位,如下所示:

select: function(start, end, event, view, resource) {
  var resourceId = resource.id;
}

使用Scheduler(v1.3.3)在fullcalendar(^ 3.0.0-beta)上为我做了诀窍

答案 1 :(得分:0)

为什么不在服务器端执行此操作,当您要插入(服务器端)事件时,检查最后一个事件然后添加(最后一个事件+ 1) - >要插入的事件的新ID。当您在日历上加载事件时,您可以从每个事件中获取id属性并且每个事件都有不同的ID。

什么是服务器端技术btw?

修改

但是你想要Event Object Id(http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)还是Jquery / Javascript id对象?

因为如果你在文档中看到你想要id是(event.id)。

检查这个,也许它会对你有帮助:(How do I get the resource id when dropping external event onto resourceWeek?

答案 2 :(得分:0)

如果您的活动在日历上正确呈现,那么您应该只使用select: function(start, end, event){alert(event.resource.id)}的资源ID,注意它不是resourceId。

答案 3 :(得分:0)

在另一篇文章中找到了一个非常棒的资源视图FullCalendar实现。

Post

Implementation Link(现在链接已经破了,如果我在网上找到另一个例子,我会在这里发帖。)

这回答了问题并附带了示例。