Posted 10 February 2025, 2:31 am EST
Hi,
For implementing the filter row with “Contains” filter condition only, you can consider settings the added row as “UnfilteredRow”, to make sure the row 0 is not filtered.
private void Form1_Load(object sender, EventArgs e)
{
..............
rowFilter.UnfilteredRows = new int[] { 0 };
}
Further, you can update the EditChange event as shown in the following code snippet:
private void FpSpread1_EditChange(object sender, EditorNotifyEventArgs e)
{
if (e.Row == 0)
{
Debug.WriteLine("Called...");
for (int i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
string text = fpSpread1.ActiveSheet.Cells[0, i].Text;
if (text != String.Empty)
{
FilterCondition fcd = new FilterCondition(CustomFilterOperatorType.Equal, "*" + text + "*");
CustomFilterItem activeFilter = new CustomFilterItem(fcd, null, true);
activeFilter.SheetView = fpSpread1.ActiveSheet;
FilterColumnDefinition filterColumnDefinition = new FilterColumnDefinition(i, FilterListBehavior.Custom);
filterColumnDefinition.Filters.Add(activeFilter);
rowFilter.ColumnDefinitions.Add(filterColumnDefinition);
fpSpread1.ActiveSheet.AutoFilterColumn(i, activeFilter.DisplayName, 0);
}
else
{
fpSpread1.ActiveSheet.AutoFilterColumn(i, null, 0);
}
}
}
}
Kindly refer to the attached sample for full implementation. [FilterModify_mod.zip]
Thanks & regards,
Aastha