Blogs

This Blog

Subscribe (RSS, Email)

Mehul Harry's DevExpress Blog

JavaScript, HTML 5, ASP.NET, DevExpress, ASP.NET MVC & WebForms, and News - Mehul Harry's DevExpress blog

ASP.NET MVC Grid Wildcard Filtering–Like operator setup

A powerful way to filter the DevExpress ASP.NET MVC GridView is to use the “Like” operator with wildcards:

DevExpress_ASPNET_GridView_Filter

How to Enable

1. First, you’ll need to enable AutoFilterRow by setting the Settings.ShowFilterRow to true. The Header Filter (AutoFilterRow) to allow your end-users to filter the individual columns.

2. Then you’ll need to set the columns to support the “Like” filter condition. You can either set it explicitly on the column. This uses the “Like” operator as the default.

3. If you would like to give your end-users a choice then enable the Filter Row Menu using the ShowFilterRowMenu property. And be sure to also set the GridViewDataColumnSettings.ShowFilterRowMenuLikeItem property on the column.

Take a look at this code below which sets up the “Product Name” column to use the like operator:

@Html.DevExpress().GridView(
    settings =>
    {
        settings.Name = "gvFilterRow";
        settings.CallbackRouteValues = new { Controller = "GridView", Action = "FilterRowPartial" };
        settings.Width = Unit.Percentage(100);

        settings.Columns.Add(column => {
            column.FieldName = "ProductName";
            column.Settings.AutoFilterCondition = AutoFilterCondition.Like;
        });
        settings.Columns.Add(column => {
            column.FieldName = "CategoryID";
            column.Caption = "Category";

            column.ColumnType = MVCxGridViewColumnType.ComboBox;
            var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties;
            comboBoxProperties.DataSource = NorthwindDataProvider.GetCategories();
            comboBoxProperties.TextField = "CategoryName";
            comboBoxProperties.ValueField = "CategoryID";
            comboBoxProperties.ValueType = typeof(int);
            comboBoxProperties.DropDownStyle = DropDownStyle.DropDown;
        });
        settings.Columns.Add("QuantityPerUnit");
        settings.Columns.Add("UnitPrice").PropertiesEdit.DisplayFormatString = "c";
        settings.Columns.Add("ReorderLevel");
        settings.Columns.Add("Discontinued", MVCxGridViewColumnType.CheckBox);

        settings.Settings.ShowFilterRow = true;
        settings.Settings.ShowFilterRowMenu = true;
        settings.CommandColumn.Visible = true;
        settings.CommandColumn.ClearFilterButton.Visible = true;
    }).Bind(Model).GetHtml()

This provides your end-users with one of the most powerful GridView filtering options available:

Wildcard Filtering

The Like item allows end-users to create filter expressions with wildcards:

- the '%' symbol - substitutes zero or more characters;
- the '_' symbol - substitutes a single character.

The Like menu item's tooltip displays help text that explains which wildcards are supported:

Represents the LIKE operator that determines whether a specific character string matches a specified pattern or not.

The following wildcard characters are supported:

% matches a string of zero or more characters. For instance:CriteriaOperator.Parse("Name like 'Jo%'") - returns all the objects whose Name begins with 'Jo'.
CriteriaOperator.Parse("Name like '%car%'") - returns all the objects whose Name contains the 'car' substring.

_ matches a single character. For instance:CriteriaOperator.Parse("Name like 'car_'") - returns all the objects whose Name consists of four characters and begins with 'car'.

[ ] identifies a single character within the specified range ([a-c]) or set ([abc]). For instance:CriteriaOperator.Parse("Name like '[A-C]%'") - returns all the objects whose Name begins with 'A', 'B' or 'C'.

[ ^ ] excludes a single character not within the specified range ([^a-c]) or set ([^abc]). For instance:CriteriaOperator.Parse("Name like 're[^de]%'") - returns all the objects whose Name begins with 're', and where the following letter is not 'd' or 'e'.

See Criteria Language Syntax to learn more.

 

Build Your Best - Without Limits or Compromise

Try the DevExpress ASP.NET MVC Extensions online now: http://mvc.devexpress.com

Read the latest news about DevExpress ASP.NET MVC Extensions: http://dxpr.es/ov1tQa

Download a free and fully-functional version of DXperience now: http://www.devexpress.com/Downloads/NET/

Published Mar 07 2013, 04:45 PM by
Filed under: ,
Bookmark and Share

Comments

mayur sharma

I have user your tool but it take so much time to fill the Gridview. After fill the grid sorting and filtering take around 10-15 seconded. Give me the suggestion to solve that problems...

March 9, 2013 5:51 AM

Mehul Harry (DevExpress)

Mayur,

For large datasets, you should use the DevExpress "server mode" feature:

www.youtube.com/watch

mvc.devexpress.com/.../DataBindingToLargeDatabase

March 9, 2013 9:44 PM

About Mehul Harry (DevExpress)

Mehul Harry is an ASP.NET technical evangelist at Developer Express. You can reach him directly at mharry@DevExpress.com. You can also follow him on Twitter: http://twitter.com/mehulharry
LIVE CHAT

Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383

FOLLOW US

DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. Whether using WPF, Silverlight, ASP.NET, WinForms, HTML5 or Windows 8, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2014 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners