In place of direct binding use the following ways
first put your filtered data in a dataset/datatable. then
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow rw = ds.Tables[0].Rows[i];
int cnt = rw.ItemArray.Length;
string row1 = "";
string[] cells = new string[cnt + 1];
for (int j = 0; j < cnt; j++)
{
cells[j] = rw.ItemArray.GetValue(j).ToString();
}
dataGridView1.Rows.Add(cells);
}