/// <summary> /// Aplica el filtro correspondiente según la pestaña /// </summary> protected override void ApplyFilter() { switch (Filtros.SelectedTab.Name) { case "Todos_TP": { RefreshMainData(); } break; case "Advanced_TP": { try { foreach (EntityDriverForm item in _list_active_form) { if (item is PlantillaLocalizeForm) { ((LocalizeForm)item).Filter(); } } Datos.DataSource = PlantillaExamenList.SortList(_lista_filtrada, "Codigo", ListSortDirection.Ascending); } catch (Exception) { Datos.DataSource = _lista; } } break; case "Modulo_TP": { try { CriteriaEx criteria = PlantillaExamen.GetCriteria(PlantillaExamen.OpenSession()); criteria.AddEq("OidModulo", ActiveItem.OidModulo); _lista = PlantillaExamenList.GetListByModulo(ActiveItem.OidModulo); Datos.DataSource = PlantillaExamenList.SortList(_lista, "Codigo", ListSortDirection.Ascending); } catch (Exception) { _lista = null; } } break; } }
private void PlantillasMngForm_KeyPress(object sender, KeyPressEventArgs e) { DataGridViewColumn col; if (Tabla.CurrentCell == null) { if (Tabla.SortedColumn != null) { col = Tabla.SortedColumn; } else { col = Tabla.Columns[0]; } } else { col = Tabla.Columns[Tabla.CurrentCell.ColumnIndex]; } if (col.ValueType != null) { if (col.ValueType.Name == "Int32") { return; } if (col.ValueType.Name == "Int64") { return; } if (col.ValueType.Name == "Single") { return; } if (col.ValueType.Name == "Double") { return; } string car = e.KeyChar.ToString(); CriteriaEx criteria = PlantillaExamen.GetCriteria(PlantillaExamen.OpenSession()); criteria.AddStartsWith(col.DataPropertyName, car); // Buscamos las palabras que empiecen por el caracter PlantillaExamenList lista = PlantillaExamenList.GetList(criteria); SortedBindingList <PlantillaExamenInfo> list = PlantillaExamenList.GetSortedList(lista, col.DataPropertyName, ListSortDirection.Ascending); int foundIndex; // Nos situamos en la primera aparicion de esa lista en la // que se muestra. Esto se hace pq se ha consultado la bd y no la lista actual // lo que puede dar lugar a inconsistencias si otro usuario a cambiado la bd foreach (PlantillaExamenInfo cli in list) { foundIndex = Datos.IndexOf(cli); if (foundIndex != -1) { Datos.Position = foundIndex; break; } } } }