レンダリング時に月ビューの各セルにカスタム html テーブルを挿入しようとしています。これを行うには、ajax を使用してサービスを呼び出します。このサービスは、セルに入力した html テーブルを返します。
これを行うために、fullcalender.js に次のコードを入力しました
bodyCells.each(function (i, _cell) {
cell = $(_cell);
date = indexDate(i);
if (date.getMonth() == month) {
cell.removeClass('fc-other-month');
} else {
cell.addClass('fc-other-month');
}
if (+date == +today) {
cell.addClass(tm + '-state-highlight fc-today');
} else {
cell.removeClass(tm + '-state-highlight fc-today');
}
cell.find('div.fc-day-number').text(date.getDate());
//Paras Change
$(CallService(date)).appendTo(cell.find('div.fc-day-content').empty());
if (dowDirty) {
setDayID(cell, date);
}
});
関数「bodyCells.each」で。ここで、CallService は、サービスを呼び出す関数への呼び出しです。
サービスへの私の呼び出しは、別の javascript ファイル fullcalenderDataHelp.js にあります。コードは次のとおりです。
function CallService(date) {
var table = null;
var newDate = (date.getMonth() + 1) + '/' + (date.getDate()) + '/'+date.getFullYear();
$.ajax({
type: "POST",
url: "http://localhost:57747/ScheduleServer.svc/GetScheduleByDay",
data: '{"day":"' + newDate + '"}',
timeout: 7000,
contentType: "application/json",
success: function (response, textStatus, jqXHR) {
table = $.parseJSON(response.d)
}
})
//alert(table);
return table;
}
html テーブルがハードコードされている場合は機能しますが、実際の ajax 呼び出しを行って html テーブルを表示しようとすると、機能しないようです。ajax呼び出しの方が時間がかかると思います。
これについて何か助けていただければ幸いです。
ありがとう、パラス