SearchExpression Class (System.Web.UI.WebControls.Expressions)

Switch View :
ScriptFree
.NET Framework Class Library
SearchExpression Class

Provides a way to search a field or fields for string values and compare them to a specified string value.

Inheritance Hierarchy

System.Object
  System.Web.UI.WebControls.Expressions.DataSourceExpression
    System.Web.UI.WebControls.Expressions.ParameterDataSourceExpression
      System.Web.UI.WebControls.Expressions.SearchExpression

Namespace:  System.Web.UI.WebControls.Expressions
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)
Syntax

Visual Basic
Public Class SearchExpression _
	Inherits ParameterDataSourceExpression
C#
public class SearchExpression : ParameterDataSourceExpression
Visual C++
public ref class SearchExpression : public ParameterDataSourceExpression
F#
type SearchExpression =  
    class
        inherit ParameterDataSourceExpression
    end

The SearchExpression type exposes the following members.

Constructors

  Name Description
Public method SearchExpression Initializes a new instance of the SearchExpression class.
Top
Properties

  Name Description
Public property ComparisonType Gets or sets the type of string comparison to perform.
Protected property Context Gets the HttpContext instance of the owner control. (Inherited from DataSourceExpression.)
Public property DataFields Gets and sets a single field or a comma-separated list of fields to search.
Public property DataSource Gets the data source object that is associated with the owner control. (Inherited from DataSourceExpression.)
Protected property IsTrackingViewState Gets a value that indicates whether a data source expression object is tracking its view state changes. (Inherited from DataSourceExpression.)
Protected property Owner Gets the owner control. (Inherited from DataSourceExpression.)
Public property Parameters Gets the parameters that are associated with this DataSourceExpression object. (Inherited from ParameterDataSourceExpression.)
Public property SearchType Gets or sets the SearchType value that determines where in the string the search occurs.
Protected property ViewState Gets an instance of the StateBag class that contains the current view state information. (Inherited from DataSourceExpression.)
Top
Methods

  Name Description
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetQueryable Applies a SearchExpression object to the specified IQueryable object based on the SearchType object. (Overrides DataSourceExpression.GetQueryable(IQueryable).)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method LoadViewState Loads the state of the values in the ParameterDataSourceExpression object that must be persisted. (Inherited from ParameterDataSourceExpression.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method SaveViewState Saves the current view state of the ParameterDataSourceExpression object. (Inherited from ParameterDataSourceExpression.)
Public method SetContext Executes the expression by using the specified owner control, context, and data source. (Inherited from ParameterDataSourceExpression.)
Public method SetDirty Marks the DataSourceExpression object so that its state will be saved in view state. (Inherited from DataSourceExpression.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Protected method TrackViewState Tracks view-state changes of the ParameterDataSourceExpression object so that the changes can be stored in the StateBag object for the object. (Inherited from ParameterDataSourceExpression.)
Top
Explicit Interface Implementations

  Name Description
Explicit interface implemetation Private property IStateManager.IsTrackingViewState When implemented by a class, gets a value that indicates whether a data source expression object is tracking its view state changes. (Inherited from DataSourceExpression.)
Explicit interface implemetation Private method IStateManager.LoadViewState When implemented by a class, loads the previously saved view state of the data source expression object. (Inherited from DataSourceExpression.)
Explicit interface implemetation Private method IStateManager.SaveViewState When implemented by a class, saves the current view state of the DataSourceExpression object. (Inherited from DataSourceExpression.)
Explicit interface implemetation Private method IStateManager.TrackViewState When implemented by a class, tracks view state changes of the DataSourceExpression object so that the changes can be stored in the StateBag object for the data source expression object. (Inherited from DataSourceExpression.)
Top
Exceptions

Exception Condition
InvalidOperationException

The DataFields property is null (Nothing in Visual Basic)

Remarks

The QueryExtender control provides the ability to filter data in a Web page by using the SearchExpression class. The SearchExpression class compares a specified string in a field or fields to a value that you supply. The expression performs a "starts with", "contains", or "ends with" search. You must specify values for the SearchType and the DataFields properties in order to indicate the type of search you want to perform and the data fields that you want to search. If the LINQ provider that you use in the QueryExtender control supports case sensitivity, you can use the ComparisonType property to enable or ignore case sensitivity.

The value to search can be provided by an ASP.NET control. To specify this, you set the ControlID property of the ControlParameter class in the SearchExpression object to the ID of a ASP.NET control. For example, if the value to search is entered in a text box, the ControlID property must be set to the ID of the text box control. You can use the SearchExpression class in combination with the other expressions that the QueryExtender supports, such as the RangeExpression filter. For example, you can search for product names that contain the string "tea" and a list price between 100 and 200.

Examples

The following example shows how to search the Name column in the Products table of the AdventureWorks database for products whose that start with the string that is specified in the SearchTextBox control. The result that is returned from the LinqDataSource control is displayed in a GridView control.

This code example is part of a larger example that is provided in Walkthrough: Filtering Data in a Web Page Using Declarative Syntax.


<form id="form1" runat="server">
  Search: <asp:TextBox ID="SearchTextBox" runat="server" />
  <div>
  <asp:Button ID="Button1" runat="server" Text="Search"  />
  </div>

  <asp:LinqDataSource ID="LinqDataSource1"  
       ContextTypeName="AdventureWorksDataContext"  
       TableName="Products" runat="server"> 
  </asp:LinqDataSource>

  <asp:QueryExtender runat="server" 
       TargetControlID="LinqDataSource1">
    <asp:SearchExpression SearchType="StartsWith" DataFields="Name" >
      <asp:ControlParameter ControlID="SearchTextBox" />
    </asp:SearchExpression>
  </asp:QueryExtender>

  <asp:GridView ID="GridView1" runat="server"  
      DataSourceID="LinqDataSource1" AllowPaging="True" >
  </asp:GridView>
</form>





Version Information

.NET Framework

Supported in: 4
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also

Reference

Other Resources