2017-09-21 14 views
0

私はフルカレンダーを使用して月に生徒の出席を表示しています。前のボタンのデータを正しくクリックしても、値はカレンダーに表示されません。私は、コンソールで日付を表示することができますが、カレンダー前のボタンでカレンダーのデータが完全に表示されない

$(document).on("click", ".fc-prev-button", function() { 
    getMonth(); 
}); 
$(document).on("click", ".fc-next-button", function() { 
    getMonth(); 
}); 

function getMonth() { 
    var date = $('div[id*=calendar1]').fullCalendar('getDate'); 
    date = date.format('YYYY-MM-DD'); 
    alert(date); 
    $('div[id*=calendar1]').fullCalendar({ 
     header: { 
      left: 'prev,next today myCustomButton', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     } 
    }); 

    $.ajax({ 
     type: "POST", 
     contentType: "application/json", 
     data: "{Date:'" + date + "'}", 
     url: "attendance-full.aspx/GetEvents", 
     dataType: "json", 
     success: function (data) { 
      alert("Done"); 
      console.log(data); 
      events: $.map(data.d, function (item, i) { 
       var event = new Object(); 
       event.id = item.EventID; 
       event.start = new Date(item.StartDate); 
       event.title = item.EventName; 
       return event; 
      }) 
      $("#calendar1").fullCalendar("refetchEvents"); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      debugger; 
     } 
    }); 
} 

答えて

0

に私はあなたのgetMonth()を行うことを意図しているものを完全にわからないが、あなたは数ヶ月を変更するとFullcalendarを自動的にロードして再レンダリング新しいイベントを処理しません。月を変更した後に表示されたイベントを更新するだけであれば、ほとんどのコードを削除して、次のコードを使用することができます。

はあなたのイベントを取得する場合を含む、あなたのカレンダーを初期化:それ

$('div[id*=calendar1]').fullCalendar({ 
    header: { 
     left: 'prev,next today myCustomButton', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    events: "attendance-full.aspx/GetEvents", 
}); 

だそれ! Fullcalendarは、カレンダーが最初に初期化されたときにイベントソースURLを照会し、月またはビューを変更したときはいつでも再度照会します。新しいイベントを自動的に再描画します。手動で行うためのコードを書く必要はありません。

Fullcalendarがイベントソースを照会するたびに、startendというパラメーターが渡されるため、サーバーサイドのコードはそれらを使用して返すイベントを判断する必要があります。あなたのコードは、Dateを使用しているように見えます - あなたは私たちstartendにあなたのコードを更新する必要がありますか、(おそらくあまりにもendを使用したいが)あなたはuse startParamDatestartを変更することができます。

Fullcalendarのドキュメントは良いです、あなたはそれらを読む必要があります。 the event source documentationをチェックし、some of their examplesを調べます。

+0

@ Dont't Panic最初の日付を開始日と最後の日付を最後に渡すことはできますか?あなたのサポートをありがとう私は完全な暦の初心者です – Jks

+0

@Jks私はあなたが何を意味するのか分かりません。 Fullcalendarは、現在表示されている範囲に対して自動的に 'start'と' end'を渡します。ブラウザのデベロッパーツールを開き、ネットワークタブを見てください。Fullcalendarが何をしているのか、そして月/ビューを変更したときに渡すパラメータが表示されます。 –

+0

は、ユーザーが指定した値を渡すことができます。たとえば、10/09/2017 -15/09/2017の間の値、私は十分な評判がないので、私はあなたのために投票できません – Jks