public void SetTextFilter(bool lValue,string cSearchText) { if(lValue==false) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for(int col=0;col < this.TableStyles[0].GridColumnStyles.Count;col++) { DataGridColumnStyle oCol = this.TableStyles[0].GridColumnStyles[col]; // grab column object for current column # string cColumnName = oCol.MappingName.ToString(); DataRow DrColumn = this.DtGridDef.Rows.Find(cColumnName); // make sure column is defined in DtGridDef where SEARCH is TRUE if ( bool.Parse(DrColumn["Search"].ToString())) { if (sb.ToString().Length > 0) sb.Append(" or "); sb.AppendFormat("Convert({0},'System.String') like '%{1}%'", cColumnName,cSearchText); } } this.dvGrid.RowFilter = sb.ToString(); } else // reset the filter this.dvGrid.RowFilter = ""; }This one took 1-2 secs with 100K rows.