Hi,
Generally, you can manage it on server side binding to the EventStore only required data.
For client filtering (using the client side Store filter and filterBy methods), please add the following thing for Event Store.
Markup
<CustomConfig>
<ext:ConfigItem Name="queryBy" Value="myQueryBy" Mode="Raw" />
</CustomConfig>
JavaScript
var myQueryBy = function(fn, scope){
var data = this.data;
return data.filterBy(fn, scope||this);
};
Here is the full example.
Example
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Ext.NET v2 Example</title>
<script type="text/javascript">
var myQueryBy = function(fn, scope){
var data = this.data;
return data.filterBy(fn, scope||this);
};
var filter = function (calendar, field, value) {
calendar.eventStore.clearFilter();
calendar.eventStore.filter(field, value);
};
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Viewport runat="server" Layout="BorderLayout">
<Items>
<ext:Panel runat="server" Region="North" Height="50">
<Items>
<ext:Button runat="server" Text="Filter 'EventId is 1'">
<Listeners>
<Click Handler="filter(App.CalendarPanel1, 'EventId', 1);" />
</Listeners>
</ext:Button>
<ext:Button runat="server" Text="Filter 'EventId is 2'">
<Listeners>
<Click Handler="filter(App.CalendarPanel1, 'EventId', 2);" />
</Listeners>
</ext:Button>
<ext:Button runat="server" Text="Clear filter'">
<Listeners>
<Click Handler="App.CalendarPanel1.eventStore.clearFilter();" />
</Listeners>
</ext:Button>
</Items>
</ext:Panel>
<ext:CalendarPanel ID="CalendarPanel1" runat="server" Region="Center">
<EventStore runat="server">
<Events>
<ext:EventModel
EventId="1"
Title="My event"
StartDate="2012/5/5"
EndDate="2012/5/6"
CalendarId="1" />
<ext:EventModel
EventId="2"
Title="My event"
StartDate="2012/5/15"
EndDate="2012/5/16"
CalendarId="2" />
</Events>
<CustomConfig>
<ext:ConfigItem Name="queryBy" Value="myQueryBy" Mode="Raw" />
</CustomConfig>
</EventStore>
</ext:CalendarPanel>
</Items>
</ext:Viewport>
</form>
</body>
</html>