$('#calendar').fullCalendar
(
{
editable: true,
events:
$.ajax
(
{
type: "POST",
url: "Calender.aspx/GetCDCatalog",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json"
}
)
}
)
calender.aspx is page and getcddialog is function which return type is array which doest not bind calender.
public CD[] GetCDCatalog()
{
XDocument docXML =
XDocument.Load(Server.MapPath("mydata.xml"));
var CDs =
from cd in docXML.Descendants("Table")
select new CD
{
title = cd.Element("title").Value,
star = cd.Element("star").Value,
endTime = cd.Element("endTime").Value,
};
return CDs.ToArray<CD>();
}
You can’t, to my knowledge call a function on an ASP.NET Webforms page in such a manner. And forgive me, I am making the assumption that this is a Webforms application. If this were an ASP.NET MVC application in which the Calender.aspx [sic] page is a View for the CalenderController you could do something like:
More info: Link
Also, would it be possible to make the GetCDCatalog() method into a web service method? It looks like that’s where you might be headed.
EDIT: Ok, so I made a little proof of concept that hopefully you’ll be able to adapt to your project/solution.
I created an ASP.NET Webforms (Visual Studio 2010/Webforms 4) application with the following method on the Default.aspx page:
On the Default.aspx page of my application, I added the following jQuery:
(NOTE: You’re probably looking to call your Calender.aspx page from a different page, but as long as it is not cross-domain, it should be fine. Otherwise, you’ll need to use JSONP and add a callback=? to the end of the URL to which you’re POSTing).
Then, I just called GetSomeThingsUsingJSON() on the page load (document.ready). It returns the following JSON:
I believe the "d" is a .NET convention/annoyance. Regardless, to access the data you want in your OnSuccess method, you’ll need to reference the d property for the array you’re looking for as I do to get the length of the array returned.