Archivo

Archive for the ‘Linq’ Category

Checkboxlist y jQuery II

25 May, 2012 1 comentario

Bueno en el post pasado, especifique como obtener todos los valores seleccionados. Ahora veamos como ver si un valor en especifico del listado esta seleccionado. cabe mencionar que es importante saber cuantos elementos hay en el listado, para ir a ese índice y validarlo.

var Complementarios = $('#<%=chkOptions.ClientID%> :checkbox')[0].checked ? 0 : 1;

lo que hago es validar el checkbox por su índice, y evalúo si esta seleccionado o no.

Y de pilón agrego como deseleccionar todos los elementos dentro de un checkboxlist. personalícenlo si necesitan hacer lo contrario.

$('#<%=chklist.ClientID%> input:checkbox:checked').each(function () {
$(this).attr('checked', false);
});

Iterar un Gridview con Linq

25 May, 2012 Deja un comentario

Para iterar el gridview debemos obtener la colección de registros de forma que sea IEnumerable

Eso es con el método Cast.

Adicionalmente se obtienen las columnas que se necesiten del grid

var rows = GridView1.Rows.Cast<GridViewRow>().Select(a => new
            {
                ID = Convert.ToInt32(a.Cells[0].Text),
                FirstName = a.Cells[1].Text,
                LastName = a.Cells[2].Text
            }).ToList();

Finalmente se obtiene el listado de esa operación, y se manipula a consideración

Categorías: .NET, C#, Linq, Visual Studio 2010 Etiquetas: , , ,

Linq y el Metodo Distinct con IEqualityComparer

27 junio, 2011 Deja un comentario

En este ejemplo no estoy usando tipos anónimos, ya que previamente definí mi clase a ocupar con Linq.

Lo primero es importar la libreria de Reflection.

using System.Reflection;

Lo siguiente es crear una clase que implemente la interface de IEqualityComparer, esta clase se usa sobre un listado del tipo de dato a utilizar

public class OCDiferentes : IEqualityComparer<OCxItem>
{
    public bool Equals(OCxItem x, OCxItem y)
    {
        if (x == null || y == null)    //optional
            return false;
        else
            return x.ID == y.ID;
    }

    public int GetHashCode(OCxItem Item)
    {
        return Item.ID.GetHashCode();
    }
}

Dentro de esta clase tenemos el método Equals donde se compararan los valores que queremos que sean únicos. Ahora la implementación.

ListadoResultante = (ListadoOrigen
       .Where(d => (d.Y- d.X) > 0) //Filtro 
       .Select(d => new OCxItem
       {
           PId = (string)d.PId,
           Nombre = d.Nombre,
           ID = d.ID,
           Fecha = d.Fecha,
       }).Distinct(new OCDiferentes())
       .OrderBy(d => d.ID)).ToList(); //Ordenamiento

Dentro del llamado al metodo Distinct creamos una clase para que compare, del tipo que habíamos definido previamente “OCDiferentes

También incluyo un Where y un Order by para que se entienda como se utilizarían esas otras instrucciones.

Por ultimo tamvien estoy usando la instruccion ToList(), para que cree el listado del tipo que se define en el Select que es “OCxItem

Nota: Listado ListadoResultante y ListadoOrigen son del tipo List<OCxItem>