Настройка календаря Ext.NET выполняется легко, однако требуется время, чтобы понять, что календарь работает, только если вы передаете ему события, заключенные в объект EventCollection, предоставленный Ext.
Ниже приведен пример метода веб-службы для возврата событий для календаря.
[WebMethod]
public EventCollection GetEvents(DateTime start, DateTime end)
{
EventCollection results = new EventCollection();
//....Fill the collection here.....
return results;
}
На странице вам нужно что-то вроде этого:
<ext:ResourceManager ID="ResourceManager1" runat="server" Theme="Gray" />
<ext:Viewport ID="Viewport1" runat="server" Layout="Border">
<Items>
<ext:Panel runat="server" Width="176" Region="West" Border="false">
<Items>
<ext:DatePicker ID="dtpCurrentDate" runat="server">
<Listeners>
<Select Fn="setStartDate" />
<BeforeRender Handler="this.showPrevMonth = this.showPrevMonth.createSequence(HighlightPostDates);this.showNextMonth = this.showNextMonth.createSequence(HighlightPostDates);this.onMonthClick = this.onMonthClick.createSequence(HighlightPostDates);" />
</Listeners>
</ext:DatePicker>
</Items>
</ext:Panel>
<ext:CalendarPanel runat="server" ID="pnlCalendar" Region="Center" >
<MonthView runat="server"></MonthView>
<WeekView runat="server"></WeekView>
<DayView runat="server"></DayView>
<GroupStore runat="server" ID="storeGroups">
<Groups>
<ext:Group CalendarId="1" Title="Event Type 1" />
<ext:Group CalendarId="2" Title="Event Type 2" />
</Groups>
</GroupStore>
<EventStore ID="EventStore1" runat="server" DateFormat="M$" ShowWarningOnFailure="false">
<Proxy>
<ext:HttpProxy Json="true" />
</Proxy>
<Reader>
<ext:JsonReader Root="d" />
</Reader>
<BaseParams>
<ext:Parameter Name="start" Value="" Mode="Value" />
<ext:Parameter Name="end" Value="" Mode="Value" />
</BaseParams>
<Listeners>
<Load Fn="HighlightPostDates" />
</Listeners>
</EventStore>
</ext:CalendarPanel>
</Items>
</ext:Viewport>
И в коде позади вы соединяете оба, делая:
((HttpProxy)this.pnlCalendar.EventStore.Proxy.Proxy).Url = "Method URL...";
((HttpProxy)this.pnlCalendar.EventStore.Proxy.Proxy).Method = HttpMethod.POST;