Los que usamos DataTables para llenar controles de .NET como DataGrids, ComboBox, CheckBoxList, etc., generalmente obtenemos los datos de una consulta SQL, y como bien saben, en ella podemos agregar filtros y ordenamiento de la información.
¿Pero que pasa en los casos en que el DataTable se llena manualmente o los datos son manipulados con código?, por ejemplo la traducción de los Nombres de los Productos. No siempre los filtros o el ordenamiento lo podemos hacer en el origen o mediante una consulta SQL.
Usando algunos de los métodos y propiedades de los DataViews de System.Data podemos lograr el objetivo, por ejemplo:
//Llenamos un DataTable con la información requerida
DataTable myDT = mifuncionLlenado();
//Creamos un DataView com el DataTable
DataView myDV = new DataView(myDT);
/*Para ordenar los datos usamos la propiedad Sort del DataView con el campo o los campos con los que queremos hacerlo, muy parecido a SQL*/
myDV.Sort = "nombreProducto ASC";
/*Y para filtrarlo usamos la propiedad RowFilter*/
myDV.RowFilter = "productoTipo = 1";
//Establecidas las propiedades llenamos un Control con el DataView
this.myDataGrid1.DataSource = myDV;
/*Y todavia podemos llenar otro control con el mismo DataView pero con diferente filtro*/
myDV.RowFilter = "productoTipo = 2";
this.myDataGrid.DataSource = myDV;
El DataView puede ser la vista de un DataTable al que se le puede aplicar filtros, ordenamiento, entre otras cosas, pero haciendolo en memoria.
Espero sea de ayuda y apoyo este artículo.
Happy Coding!!
Fuente: http://msdn.microsoft.com/es-es/library/system.data.dataview(VS.80).aspx
No hay comentarios.:
Publicar un comentario