Пожалуйста, я хотел бы фильтровать представление сетки на основе каждого слова текстового поля. где фильтр должен искать сетку данных каждый раз, когда я добавляю слово последовательно. Но в коде ниже он заканчивает возврат поиска только в зависимости от последнего слова. Обратите внимание, что я использую представление сетки данных.Фильтр DataGridView через текстовое поле C# с каждым словом в качестве фильтра
Любой Консультировать
частная пустота textBox1_TextChanged (объект отправителя, EventArgs е) {
int count = textBox1.Text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count();
label68.Text = count.ToString();
string[] nameParts = textBox1.Text.Split(' ');
int cnlp = 1;
while (cnlp <= count)
{
string loopcount = nameParts[(cnlp - 1)];
lbtest5.Text = loopcount.ToString();
var bd = (BindingSource)dgvShopDrawings.DataSource;
var dt = (DataTable)bd.DataSource;
dt.DefaultView.RowFilter = string.Format("DrawingID like '%{0}%' or title like '%{0}%' or level like '%{0}%'", lbtest5.Text.Replace("'", "''"));
dgvShopDrawings.Refresh();
ShopDrawingRecordCount = dt.Rows.Count;
SdDgvStatusCount.Text = String.Format("Records In {0}/{1} ", dgvShopDrawings.Rows.Count, ShopDrawingRecordCount);
cnlp = cnlp + 1;
}
}
. Поиск должен выглядеть следующим образом: textBox1: john class 900 , поэтому я хочу, чтобы сетка отображала фильтр для строки, имеющей (john и класс и 90) –
@FirasS, тогда вместо этого вы должны использовать оператор« и » оператора "или" в строке: if (rowfilter.Length> 0) rowfilter + = "OR"; и заключить в строку string.Format (.. текст фильтра здесь ..) в фигурных скобках – Arie
Я уже изменил или, но без эффекта –