Как обнулить фильтр bindingsource?
9809 просмотра
4 ответа
Используя BindingSource
LINQ to SQL и реализовав BindingList
в своем проекте a , я должен использовать a Textbox
для фильтрации строк в a DataGridView
, поэтому, когда я удаляю содержимое текстового поля, Filter должен быть сброшен в ничто.
Мой код выглядит следующим образом:
if (textBox1.Text.Length == 0)
{
productBindingSource.Filter = null;
}
else
{
productBindingSource.Filter = "ProductName = '" + textBox1.Text +"'";
//productBindingSource.RemoveFilter();
}
productDataGridView.DataSource = productBindingSource;
Но это ничего не значит, любая идея, пожалуйста?
Автор: Sami-L Источник Размещён: 13.11.2019 11:38Ответы (4)
3 плюса
Попробуйте это так:
if (textBox1.Text.Length == 0) {
productBindingSource.RemoveFilter();
} else {
productBindingSource.Filter = "ProductName = '" + textBox1.Text +"'";
}
// productDataGridView.DataSource = productBindingSource;
DataGridView не должен быть снова DataSourced, если он уже использует productBindingSource.
Автор: LarsTech Размещён: 01.08.2012 09:392 плюса
http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.filter.aspx
как показано там, bindingsource.Filter
это строковое значение. И по умолчанию это ноль, так что просто сделайте это:
productBindingSource.Filter = null;
возможно, что вам нужно что-то сделать для обновления вашего пользовательского интерфейса, но, как правило, bindingSource позаботится об этом сам.
Автор: wterbeek Размещён: 01.08.2012 06:380 плюса
Я обнаружил, что метод «Найти» нельзя использовать напрямую с BindingList, но, к счастью, есть альтернатива, использующая IEnumerable. После реализации BindingList в проекте я могу отфильтровать связанное представление данных, используя следующий код:
private void button1_Click(object sender, EventArgs e)
{
var qry = (from p in dc.Products
select p).ToList();
BindingList<Product> list = new BindingList<Product>(qry);
IEnumerable<Product> selection = list.Where(m => m.ProductName.Contains(textBox1.Text) == true);
productBindingSource.DataSource = selection;
}
Автор: Sami-L
Размещён: 02.08.2012 01:05
0 плюса
Я предполагаю, что вы проверяете, является ли текстовое поле пустым в событии TextChanged. Может быть, ваш метод не вызывается, когда длина текста = 0. Я не помню точно, почему, но я испытал этот случай раньше.
Если вы используете BindingList, который вы написали, предоставьте код. RemoveFilter, установка Filter на ноль или пустую строку всегда работала для меня.
Автор: Mauro Sampietro Размещён: 14.05.2014 01:02Вопросы из категории :
- .net Как рассчитать чей-то возраст в C #?
- .net Как вы сортируете словарь по значению?
- .net Как создать новый экземпляр объекта из Типа
- .net Действительно ли опечатанные классы действительно предлагают преимущества?
- winforms Как заставить кнопку выглядеть так, как будто она нажата?
- winforms Лучший способ получить доступ к элементу управления в другой форме в Windows Forms?
- winforms Можете ли вы использовать общие формы в C #?
- winforms Как отключить Alt + F4 закрытие формы?
- c#-4.0 How is Generic Covariance & Contra-variance Implemented in C# 4.0?
- c#-4.0 Разрешение перегрузки в C # 4.0 с использованием динамических типов
- c#-4.0 C # 4.0 REPL Андерса Хейлсберга
- c#-4.0 Каковы истинные преимущества ExpandoObject?
- bindingsource Может ли мой источник привязки сообщить мне, произошло ли изменение?
- bindingsource Не удается обновить datagridview с помощью bindingsource
- bindingsource Ошибка просмотра данных System.IndexOutOfRangeException: индекс 0 не имеет значения
- bindingsource Как обнулить фильтр bindingsource?
- bindinglist Удаление элементов из списка привязки
- bindinglist Получить удаленный элемент в событии ItemChanging BindingList
- bindinglist Добавить кнопку как столбец в DataGridView