Originally Posted by
Daniil
Hi Martin,
Sorry, Martin, I don't understand. Please elaborate.
Sorry.. I would like to enable filtering on empty string. See following code. Through the stringfilter I want only to show the records without a company name:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Collections.ObjectModel" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
List<object> goods = new List<object>
{
new
{
Id = 1 ,
Price = 71.72 ,
Company = "3m Co" ,
Date = new DateTime( 2007 , 9 , 1 ) ,
Size = "large" ,
Visible = true
} ,
new
{
Id = 2 ,
Price = 29.01 ,
Company = "" ,
Date = new DateTime( 2007 , 08 , 01 ) ,
Size = "medium" ,
Visible = false
} ,
new
{
Id = 3 ,
Price = 83.81 ,
Company = "Altria Group Inc" ,
Date = new DateTime( 2007 , 08 , 03 ) ,
Size = "large" ,
Visible = false
} ,
new
{
Id = 4 ,
Price = 52.55 ,
Company = "" ,
Date = new DateTime( 2008 , 01 , 04 ) ,
Size = "extra large" ,
Visible = true
} ,
new
{
Id = 5 ,
Price = 64.13 ,
Company = "" ,
Date = new DateTime( 2008 , 03 , 04 ) ,
Size = "small" ,
Visible = true
} ,
new
{
Id = 6 ,
Price = 31.61 ,
Company = "" ,
Date = new DateTime( 2008 , 02 , 01 ) ,
Size = "extra large" ,
Visible = false
} ,
new
{
Id = 7 ,
Price = 75.43 ,
Company = "Boeing Co." ,
Date = new DateTime( 2008 , 01 , 01 ) ,
Size = "large" ,
Visible = true
} ,
new
{
Id = 8 ,
Price = 67.27 ,
Company = "Caterpillar Inc." ,
Date = new DateTime( 2007 , 12 , 03 ) ,
Size = "medium" ,
Visible = true
} ,
new
{
Id = 9 ,
Price = 49.37 ,
Company = "Citigroup, Inc." ,
Date = new DateTime( 2007 , 11 , 24 ) ,
Size = "large" ,
Visible = true
} ,
new
{
Id = 10 ,
Price = 40.48 ,
Company = "E.I. du Pont de Nemours and Company" ,
Date = new DateTime( 2007 , 05 , 09 ) ,
Size = "extra large" ,
Visible = false
} ,
new
{
Id = 11 ,
Price = 68.1 ,
Company = "Exxon Mobile Corp" ,
Date = new DateTime( 2007 , 12 , 12 ) ,
Size = "large" ,
Visible = true
} ,
new
{
Id = 12 ,
Price = 34.14 ,
Company = "General Electric Company" ,
Date = new DateTime( 2008 , 06 , 16 ) ,
Size = "extra large" ,
Visible = true
} ,
new
{
Id = 13 ,
Price = 30.27 ,
Company = "General Motors Corporation" ,
Date = new DateTime( 2006 , 12 , 07 ) ,
Size = "medium" ,
Visible = true
} ,
new
{
Id = 14 ,
Price = 36.53 ,
Company = "Hewlett-Packard Co." ,
Date = new DateTime( 2007 , 05 , 13 ) ,
Size = "large" ,
Visible = true
} ,
new
{
Id = 15 ,
Price = 38.77 ,
Company = "Honweywell Intl Inc" ,
Date = new DateTime( 2006 , 11 , 07 ) ,
Size = "medium" ,
Visible = false
} ,
new
{
Id = 16 ,
Price = 19.88 ,
Company = "Intel Corporation" ,
Date = new DateTime( 2007 , 01 , 09 ) ,
Size = "small" ,
Visible = true
} ,
new
{
Id = 17 ,
Price = 81.41 ,
Company = "International Business Machines" ,
Date = new DateTime( 2005 , 01 , 21 ) ,
Size = "extra large" ,
Visible = true
} ,
new
{
Id = 18 ,
Price = 64.72 ,
Company = "Johnson & Johnson" ,
Date = new DateTime( 2008 , 01 , 10 ) ,
Size = "extra large" ,
Visible = true
} ,
new
{
Id = 19 ,
Price = 45.73 ,
Company = "JP Morgan & Chase & Co" ,
Date = new DateTime( 2008 , 02 , 20 ) ,
Size = "large" ,
Visible = false
} ,
new
{
Id = 20 ,
Price = 36.76 ,
Company = "McDonald's Corporation" ,
Date = new DateTime( 2007 , 06 , 12 ) ,
Size = "large" ,
Visible = true
} ,
new
{
Id = 21 ,
Price = 27.96 ,
Company = "Pfizer Inc" ,
Date = new DateTime( 2007 , 12 , 30 ) ,
Size = "small" ,
Visible = false
} ,
new
{
Id = 22 ,
Price = 45.07 ,
Company = "The Coca-Cola Company" ,
Date = new DateTime( 2007 , 01 , 30 ) ,
Size = "medium" ,
Visible = false
} ,
new
{
Id = 23 ,
Price = 34.64 ,
Company = "The Home Depot, Inc" ,
Date = new DateTime( 2006 , 12 , 31 ) ,
Size = "small" ,
Visible = true
} ,
new
{
Id = 24 ,
Price = 61.91 ,
Company = "The Procter & Gamble Company" ,
Date = new DateTime( 2007 , 04 , 08 ) ,
Size = "extra large" ,
Visible = true
} ,
new
{
Id = 25 ,
Price = 63.26 ,
Company = "United Technologies Corporation" ,
Date = new DateTime( 2006 , 06 , 04 ) ,
Size = "medium" ,
Visible = true
} ,
new
{
Id = 26 ,
Price = 35.57 ,
Company = "Verizon Communications" ,
Date = new DateTime( 2005 , 07 , 09 ) ,
Size = "small" ,
Visible = false
} ,
new
{
Id = 27 ,
Price = 45.45 ,
Company = "Wal-Mart Stores, Inc" ,
Date = new DateTime( 2006 , 09 , 09 ) ,
Size = "large" ,
Visible = true
}
};
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
this.Store1.DataSource = goods;
this.Store1.DataBind();
}
}
protected void SetFilter(object sender, DirectEventArgs e)
{
StringFilter sf = (StringFilter)GridFilters1.Filters[1];
sf.SetValue("3m Co");
sf.SetActive(true);
}
</script>
<!DOCTYPE html>
<html>
<head runat="server">
<title>GridPanel with Local Filtering, Sorting and Paging - Ext.NET Examples</title>
<link href="/resources/css/examples.css" rel="stylesheet" />
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" DirectEventUrl="default.aspx" />
<h1>GridPanel with Local Filtering, Sorting and Paging</h1>
<p>Please see column header menu for apllying filters</p>
<ext:Store runat="server" ID="Store1" PageSize="10">
<Model>
<ext:Model runat="server" IDProperty="Id">
<Fields>
<ext:ModelField Name="Id" Type="Int" />
<ext:ModelField Name="Company" Type="String" />
<ext:ModelField Name="Price" Type="Float" />
<ext:ModelField Name="Date" Type="Date" DateFormat="yyyy-MM-ddTHH:mm:ss" />
<ext:ModelField Name="Size" Type="String" />
<ext:ModelField Name="Visible" Type="Boolean" />
</Fields>
</ext:Model>
</Model>
<Sorters>
<ext:DataSorter Property="Company" Direction="ASC" />
</Sorters>
</ext:Store>
<ext:Window
ID="Window1"
runat="server"
Width="700"
Height="400"
Closable="false"
Collapsible="true"
Title="Example"
Maximizable="true"
Layout="Fit">
<Items>
<ext:GridPanel runat="server" Border="false" StoreID="Store1">
<ColumnModel runat="server">
<Columns>
<ext:Column runat="server" Text="ID" DataIndex="Id" />
<ext:Column runat="server" Text="Company" DataIndex="Company" />
<ext:Column runat="server" Text="Price" DataIndex="Price">
<Renderer Format="UsMoney" />
</ext:Column>
<ext:DateColumn runat="server" Text="Date" DataIndex="Date" Align="Center" Format="yyyy-MM-dd" />
<ext:Column runat="server" Text="Size" DataIndex="Size" />
<ext:Column runat="server" Text="Visible" DataIndex="Visible" Align="Center">
<Renderer Handler="return (value) ? 'Yes':'No';" />
</ext:Column>
</Columns>
</ColumnModel>
<Features>
<ext:GridFilters runat="server" ID="GridFilters1" Local="true">
<Filters>
<ext:NumericFilter DataIndex="Id" />
<ext:StringFilter DataIndex="Company" />
<ext:NumericFilter DataIndex="Price" />
<ext:DateFilter DataIndex="Date">
<DatePickerOptions runat="server" TodayText="Now" />
</ext:DateFilter>
<ext:ListFilter DataIndex="Size" Options="extra small,small,medium,large,extra large" />
<ext:BooleanFilter DataIndex="Visible" />
</Filters>
</ext:GridFilters>
</Features>
<BottomBar>
<ext:PagingToolbar runat="server" HideRefresh="True">
<Items>
<ext:Button runat="server" Text="Find '3m Co'">
<DirectEvents>
<Click OnEvent="SetFilter" />
</DirectEvents>
</ext:Button>
<ext:Button runat="server" Text="All Filters" ToolTip="Get Filters of Grid" Handler="var filters = Ext.encode(this.up('grid').filters.getFilterData()); Ext.Msg.alert('Filters', filters);" />
<ext:Button runat="server" Text="Clear Filters" Handler="this.up('grid').filters.clearFilters();" />
</Items>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
</Items>
</ext:Window>
</body>
</html>
Can I achieve that ?
Martin