【问题标题】:Limit the data access based on start and end date for full calendar根据完整日历的开始和结束日期限制数据访问
【发布时间】:2016-11-13 04:37:20
【问题描述】:

新日历的初学者我想从数据库中检索完整日历的事件,但我想限制或限制屏幕上显示的特定日期范围的数据

对于检索事件,我需要将屏幕上选择的开始日期和结束日期传递给通用处理程序,即 NewJosn.ashx

我使用的示例代码是:

var calendar = $('#calendar').fullCalendar({
    theme: true,
    height: calHeight,
    allDaySlot: false,
    disableDragging: false,
    defaultView: 'agendaWeek',
    slotEventOverlap: false,
    slotMinutes: varTimeSlot,
    firstHour: startTimeNew,
    firstDay: varFirstDay,
    header: {
        left: '',
        center: 'prev,today,title,next',
        right: 'resourceDay,agendaWeek,month' //resourceDay
    },
    timeFormat: 'h(:mm)tt{ - h(:mm)}tt',
    axisFormat: 'h(:mm)tt',
    editable: true,
    events: 'NewJSON.ashx',
    eventDrop: eventDropped,
    eventClick: function (calEvent, jsEvent, view) {
    },
    viewDisplay: function (view) {   
    },
    eventMouseover: function (event, jsEvent, view) {
            $(jsEvent.target).attr('title', event.title);
    },
    eventMouseout: function (event, jsEvent, view) {
    },
    dayClick: function (date, allDay, jsEvent, view) {

    },
    eventAfterRender: function (event, element, view) {
    },
    resources: [
                {
                    name: 'Resource 1',
                    id: '1'
                },
                {
                    name: 'Resource 2',
                    id: '2'
                },
                {
                    name: 'Resource 3',
                    id: '3'
                },
                {
                    name: 'Resource 4',
                    id: '4'
                }
    ]
});

【问题讨论】:

    标签: c# asp.net sql-server fullcalendar generic-handler


    【解决方案1】:

    你真的不需要做任何事情。如果您将事件定义为 JSON 提要(看起来就是这样),请在此处查看文档:http://fullcalendar.io/docs/event_data/events_json_feed/

    “FullCalendar 将在需要新事件数据时访问 URL。当用户单击 prev/next 或更改视图时会发生这种情况。FullCalendar 将确定它需要事件的日期范围,并将该信息传递到 GET 参数中。 "

    因此,您需要做的就是确保服务器端处理程序中的方法可以接收开始和结束日期参数并适当地限制它返回的数据。

    【讨论】:

    • 实际上加载数据需要太多时间,每次点击它都会进入数据库并再次带来所有数据
    • 那么我猜你的服务器端没有正确过滤数据。
    • DateTime start = new DateTime(1970, 1, 1); DateTime end = new DateTime(1970, 1, 1);开始 = start.AddSeconds(double.Parse("1377973800")); end = end.AddSeconds(double.Parse("1381602600"));
    • 如何在服务器端获取开始日期和结束日期
    • 它们作为 GET 参数传递。看起来你有某种 ASHX 处理程序。我从来没有用过,但是网上有很多关于如何检索查询字符串参数的例子。我猜想这样的事情会满足你的需要:public void ProcessRequest (HttpContext context) { var startDate = context.Request.QueryString["start"]; var endDate = context.Request.QueryString["end"]; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多