ComboBoxProperties.ItemsRequestedByFilterCondition Event
Enables you to implement custom selection of the requested items by the filter conditions.
Namespace: DevExpress.Web
Assembly: DevExpress.Web.v24.1.dll
NuGet Package: DevExpress.Web
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();
}