Agradeceríamos tu apoyo para difundir nuestras secciones acerca de las ciencias de la computación.
Solución:
Acabo de pasar una hora en un problema similar. Para mí, la respuesta resultó ser vergonzosamente simple.
(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '0'", textBoxFilter.Text);
Desarrollé una declaración genérica para aplicar el filtro:
string rowFilter = string.Format("[0] = '1'", columnName, filterValue);
(myDataGridView.DataSource as DataTable).DefaultView.RowFilter = rowFilter;
Los corchetes permiten espacios en el nombre de la columna.
Además, si desea incluir varios valores en su filtro, puede agregar la siguiente línea para cada valor adicional:
rowFilter += string.Format(" OR [0] = '1'", columnName, additionalFilterValue);
Una forma más sencilla es cruzar los datos y ocultar las líneas con el Visible
propiedad.
// Prevent exception when hiding rows out of view
CurrencyManager currencyManager = (CurrencyManager)BindingContext[dataGridView3.DataSource];
currencyManager.SuspendBinding();
// Show all lines
for (int u = 0; u < dataGridView3.RowCount; u++)
dataGridView3.Rows[u].Visible = true;
x++;
// Hide the ones that you want with the filter you want.
for (int u = 0; u < dataGridView3.RowCount; u++)
if (dataGridView3.Rows[u].Cells[4].Value == "The filter string")
dataGridView3.Rows[u].Visible = true;
else
dataGridView3.Rows[u].Visible = false;
// Resume data grid view binding
currencyManager.ResumeBinding();
Solo una idea... a mi me funciona.
Recuerda que tienes permiso de agregar una reseña si te ayudó.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)