Tab

ComboBoxProperties.ItemsRequestedByFilterCondition Event

Enables you to implement custom selection of the requested items by the filter conditions.

Namespace: DevExpress.Web

Assembly: DevExpress.Web.v21.1.dll

Declaration

public event ListEditItemsRequestedByFilterConditionEventHandler ItemsRequestedByFilterCondition

Event Data

The ItemsRequestedByFilterCondition event's data class is ListEditItemsRequestedByFilterConditionEventArgs. The following properties provide information specific to this event:

Property Description
BeginIndex Gets an integer value that identifies the begin index of the editor’s items.
EndIndex Gets an integer value that identifies the end index of the editor’s items.
Filter Gets a string that represents a filter condition for the editor’s items.

Remarks

Handling the ItemsRequestedByFilterCondition event is useful to filter an editor’s data source containing a large number of records. Using this technique has some requirements; for more information, see the Dynamic List Population (Filtering Large Data Sources) help topic.

NOTE

The ItemsRequestedByFilterCondition event synchronizes its settings with the editor’s ASPxComboBox.ItemsRequestedByFilterCondition event.

Example

The following section of the Filtering Large Data Source online demo illustrates how the ASPxComboBox.ItemsRequestedByFilterCondition and ASPxComboBox.ItemRequestedByValue events of the ASPxComboBox editor can be handled to filter the editor’s data source containing a large number of records.

NOTE

To work properly, both the ItemsRequestedByFilterCondition and ItemRequestedByValue events should be handled.

protected void ASPxComboBox_OnItemsRequestedByFilterCondition_SQL(object source, 
ListEditItemsRequestedByFilterConditionEventArgs e) {
         ASPxComboBox comboBox = (ASPxComboBox)source;
         SqlDataSource1.SelectCommand = @"SELECT OID, [From], Sent, Subject 
             FROM (select OID, [From], Sent, Subject, row_number() over(order by t.Sent) as [rn] 
             from dbo.ServerSideGridTest as t WHERE ((t.Subject LIKE @filter) OR (t.[From] 
              LIKE @filter))) as st where st.[rn] between @startIndex and @endIndex";
         SqlDataSource1.SelectParameters.Clear();
         SqlDataSource1.SelectParameters.Add("filter", TypeCode.String, string.Format("%{0}%", e.Filter));
         SqlDataSource1.SelectParameters.Add("startIndex", TypeCode.Int64, (e.BeginIndex + 1).ToString());
         SqlDataSource1.SelectParameters.Add("endIndex", TypeCode.Int64, (e.EndIndex + 1).ToString());
         comboBox.DataSource = SqlDataSource1;
         comboBox.DataBind();
}

protected void ASPxComboBox_OnItemRequestedByValue_SQL(object source, 
ListEditItemRequestedByValueEventArgs e) {
    ASPxComboBox comboBox = (ASPxComboBox)source;
    SqlDataSource1.SelectCommand = @"SELECT OID, Subject, [From], Sent 
        FROM dbo.ServerSideGridTest WHERE (OID = @OID) ORDER BY Sent";
    SqlDataSource1.SelectParameters.Add("OID", TypeCode.Int64, e.Value.ToString());
    ...
    comboBox.DataSource = SqlDataSource1;
    comboBox.DataBind();
}
See Also