dataTable.DefaultView.Rowfilter revenant toujours première ligne
J'ai essayé de faire une fonction de recherche pour une dataTable. Mon problème est que la première ligne de la table est TOUJOURS dans les lignes filtrées, même lorsque la colonne booléenne est réellement changé à zéro.
Voici mon code de la recherche:
private void buscar()
{
DataTable dataTable;
if (!verTodos)
{
dataTable = DBHelper.Instance.ProductosConStock();
}
else
{
dataTable = DBHelper.Instance.ProductosTodos();
}
dataGridProductos.DataSource = dataTable.DefaultView;
foreach (DataGridViewRow row in dataGridProductos.Rows)
{
if (row.Cells[0].Value.ToString().ToUpper().Contains(txtBusqueda.Text.ToString().ToUpper()) ||
row.Cells[1].Value.ToString().ToUpper().Contains(txtBusqueda.Text.ToString().ToUpper()) ||
row.Cells[2].Value.ToString().ToUpper().Contains(txtBusqueda.Text.ToString().ToUpper()))
{
row.Cells[4].Value = 1;
}
else
{
row.Cells[4].Value = 0;
}
}
dataTable.DefaultView.RowFilter = "mostrar = 1";
}
Étrange. Il ne faut pas. Êtes-vous certain que la première ligne est effectivement mis à 0?
100%, j'ai fait la colonne visible afin de vérifier.
100%, j'ai fait la colonne visible afin de vérifier.
OriginalL'auteur Aya desarrollos | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
Essayez de créer un DataView à partir de votre table de données et exécuter le filtre sur cette base.
Ci-dessous est un exemple rapide, j'ai essayé et il fonctionne très bien.
OriginalL'auteur CathalMF