1

JSON フィードからデータをフェッチするために ajax を使用しているときに、fullCalendar オブジェクトのイベントが表示されないという問題があります。JSON.aspx からの出力は次のとおりであるため、JSON 形式は適切であると思います。

[{"id":1,"title":"TESTTITLE","info":"INFOINFOINFO","開始":"2012-08-20T12:00:00","終了":"2012-08-20T12 :00:00","ユーザー":1}]

Firebug を使用しましたが、JSON フィードが正しく取得されていないようです。

イベントに上位の JSON フィードを直接追加すると、適切に表示されます。

(編集) JSON 応答が機能するようになりましたが、イベントはまだフルカレンダーに表示されていません。

JSON.aspx

public partial class JSON : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    // Get events from db and add to list.
    DataClassesDataContext db = new DataClassesDataContext();
    List<calevent> eventList = db.calevents.ToList();

    // Select events and return datetime as sortable XML Schema style.
    var events = from ev in eventList
                 select new
                 {
                     id = ev.event_id,
                     title = ev.title,
                     info = ev.description,
                     start = ev.event_start.ToString("s"),
                     end = ev.event_end.ToString("s"),
                     user = ev.user_id
                 };

    // Serialize to JSON string.
    JavaScriptSerializer jss = new JavaScriptSerializer();
    String json = jss.Serialize(events);

    Response.Write(json);
    Response.End();
   }
}

そして私のSite.master

<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />    
<link href='fullcalendar/fullcalendar.css' rel='stylesheet' type='text/css' />
<script src='jquery/jquery-1.7.1.min.js' type='text/javascript'></script>
<script src='fullcalendar/fullcalendar.js' type='text/javascript' ></script>
<script type="text/javascript">
     $(document).ready(function () {
         $('#fullcal').fullCalendar({

            eventClick: function() {
                alert('a day has been clicked!');
            },
          events: 'JSON.aspx' 
         })
     });
</script>

関連する質問を何日もスキャンしてきましたが、どれも私のものを修正していないようです...

4

1 に答える 1

2

なぜあなたの電話はとても複雑なのですか? 今のところこれを試してください:

$('#fullcal').fullCalendar({     
    events: 'JSON.aspx',
    eventClick: function (calEvent, jsEvent, view) {
        alert('a day has been clicked!');
    }
}); 
于 2012-09-09T14:12:02.697 に答える