我在asp.net
应用程序中使用Fullcalendar。
如果我们需要在Fullcalendar中选择一个月或一年,则有select
方法。我们可以将startDate
和endDate
传递给该方法并选择该时间段。
我需要在一个月内以编程方式选择weekends
。还需要在一个月内选择week days
。
我怎样才能做到这一点?
到目前为止我尝试了什么:
这是Demo。
答案 0 :(得分:0)
所以我得到了你的答案(我需要一些非常相似的东西,并在寻找帮助时偶然发现)。我们需要在FullCalendar和DOM之外思考一分钟。 FullCalendar使用MomentJS,这将会派上用场(这不包括在您的示例中,您需要以下内容)。首先,您需要创建一个周末或工作日的数组。我在接下来的365天(下一整年)中这样做了。
使用MomentJS的周末数组示例:
$('#weekends').click(function() {
weekend_array = new Array();
var cal = $('#calendar').fullCalendar('getCalendar');
var curr_moment = moment(cal);
for(k=0; k<365; k++) // for the next 365 days (next year)
{
// if weekend
if(curr_moment.day()==0 || curr_moment.day()==6) // 0 being Sunday, 6 being Saturday
{
weekend_array.push(curr_moment.format("YYYY-MM-DD")); // format to match the data-date attr
}
curr_moment= curr_moment.add(1, 'days');
}
console.log("Number of weekend days: " + weekend_array.length);
console.log(weekend_array);
var dates = weekend_array
HighlightDates(dates);
// help DOM restore checked dates on click
$('#daymode').val('weekend');
});
所以你有明年的周末阵容。现在,我们需要突出显示日期。问题是,只要您单击箭头查看下个月,就会清除所选日期(因为我们在DOM中工作)所以我在一个函数中创建了选择日期,可以在工作日,周末调用或按钮点击:
function HighlightDates(dates){
$('.fc-day').each(function () {
var thisdate = $(this).attr('data-date');
var td = $(this).closest('td');
if ($.inArray($(this).attr('data-date'), dates) !== -1) {
td.addClass('fc-state-highlight');
} else {
td.removeClass('fc-state-highlight');
}
});
}
我希望这会有所帮助,所有工作的演示。 :D http://jsfiddle.net/z8Jfx/255/