none
el gridviiew no filtra por busqueda RRS feed

  • Pregunta

  • Hola amigos

    de nuevo molestando, verán estoy programando una pagina web que me debe cargar la información de los clientes en un gridview, la carga de todos me la hace bien pero cuando agrego el filtro para buscar un cliente predeterminado sea por nombre o por codigo de cliente, no me muestra lo que deseo lo que hace el grid es volver a cargar la lista completa de los clientes, no se que pueda ser ya revise el codigo varias veces pero no logro identificar el error. 

    aqui les adjunto parte del codigo de la pagina web UI y de la BL de donde invoco los filtros

    UI:

    if (lblSucursal.Text == "PM")
                {
                    //gvSocioBusqueda.DataSourceID = Nothing;
                    //gvSocioBusqueda.DataSource = from socioPM in _SociosPMBL.MostrarSocioPM()
                    //                             select new
                    //                             {
                    //                                 KeytagSocico = socioPM.KeyTagCliente,
                    //                                 Nombre1Socio = socioPM.Nombre1Socio,
                    //                                 Nombre2Socio = socioPM.Nombre2Socio,
                    //                                 Apellido1Socio = socioPM.Apellido1Socio,
                    //                                 Apellido2Socio = socioPM.Apellido2Socio,
                    //                                 DUI = socioPM.DUI,
                    //                                 FechaInscripcion = socioPM.FechaInscripcion,
                    //                                 fechaReinscripcion = socioPM.FechaReinscripcion,
                    //                                 TelefonoTrabajo = socioPM.TelefonoTrabajo,
                    //                                 TelefonoCelular = socioPM.TelefonoCelular,
                    //                                 EstadoSocio = socioPM.CodigoEstadoCliente,
                    //                                 MembresiaSocio = socioPM.CodigoTipoMembresia
                    //                             };
                    //gvSocioBusqueda.DataBind();
    
                    keyBusqueda = ddlPaisBusquedaAvanzada.SelectedValue + '-' + lblSucursalBusquedaAvanzada.Text + '-' + txtKeytagBusquedaAvanzada.Text;
    
                        _SociosPM.KeyTagCliente = keyBusqueda;
                        _SociosPM.Nombre1Socio = txtNombre1.Text;
                        _SociosPM.Nombre2Socio = txtNombre2.Text;
                        _SociosPM.Apellido1Socio = txtApellido1.Text;
                        _SociosPM.Apellido2Socio = txtApellido2.Text;
                        _SociosPM.DUI = txtDUI.Text;
                        _SociosPM.NIT = txtNIT.Text;
    
                    gvSocioBusqueda.DataSourceID = Nothing;
                    gvSocioBusqueda.DataSource = from socioPM in _SociosPMBL.MostrarSocioPMPorFiltro(_SociosPM)
                                                 select new
                                                         {
                                                             KeyTagCliente = socioPM.KeyTagCliente,
                                                             Nombre1Socio = socioPM.Nombre1Socio,
                                                             Nombre2Socio = socioPM.Nombre2Socio,
                                                             Apellido1Socio = socioPM.Apellido1Socio,
                                                             Apellido2Socio = socioPM.Apellido2Socio,
                                                             DUI = socioPM.DUI,
                                                             TelefonoCasa = socioPM.TelefonoCasa,
                                                             TelefonoTrabajo = socioPM.TelefonoTrabajo,
                                                             TelefonoCelular = socioPM.TelefonoCelular,
                                                             CodigoEstadoCliente = socioPM.CodigoEstadoCliente,
                                                             CodigoTipoMembresia = socioPM.CodigoTipoMembresia,
                                                             FechaInscripcion = socioPM.FechaInscripcion,
                                                             FechaReinscripcion = socioPM.FechaReinscripcion
                                                         };
                            gvSocioBusqueda.DataBind();
    
                    //if (txtKeytag.Text != " ")
                    //{
                    //    Key = ddlPaisBusquedaAvanzada.SelectedValue + '-' + lblSucursalBusquedaAvanzada.Text + '-' + txtKeytag.Text;
    
                    //    _SociosPM.KeyTagCliente = Key;
    
                    //    if (Key == _SociosPM.KeyTagCliente)
                    //    {
                    //        gvSocioBusqueda.DataSourceID = Nothing;
                    //        gvSocioBusqueda.DataSource = from socioPM in _SociosPMBL.MostrarSocioPMPorKeyTag(_SociosPM)
                    //                                     select new
                    //                                     {
                    //                                         KeytagSocico = socioPM.KeyTagCliente,
                    //                                         Nombre1Socio = socioPM.Nombre1Socio,
                    //                                         Nombre2Socio = socioPM.Nombre2Socio,
                    //                                         Apellido1Socio = socioPM.Apellido1Socio,
                    //                                         Apellido2Socio = socioPM.Apellido2Socio,
                    //                                         DUI = socioPM.DUI,
                    //                                         FechaInscripcion = socioPM.FechaInscripcion,
                    //                                         fechaReinscripcion = socioPM.FechaReinscripcion,
                    //                                         TelefonoTrabajo = socioPM.TelefonoTrabajo,
                    //                                         TelefonoCelular = socioPM.TelefonoCelular,
                    //                                         EstadoSocio = socioPM.CodigoEstadoCliente,
                    //                                         MembresiaSocio = socioPM.CodigoTipoMembresia
                    //                                     };
                    //        gvSocioBusqueda.DataBind();
                    //    }
                    //}
                }
    
                if (lblSucursal.Text == "MTC")
                {
    
                }
            }

    BL

    public List<DatosSocioPM> MostrarSocioPMPorFiltro(DatosSocioPM pSocioPM)
            {
                var ListaSocioPM = from socioPM in ComunDB.Contexto.DatosSocioPMs.ToList()
                                   where ((socioPM.KeyTagCliente.Contains(pSocioPM.KeyTagCliente))) 
                                   && ((socioPM.Nombre1Socio.Contains(pSocioPM.Nombre1Socio)))
                                   && ((socioPM.Nombre2Socio.Contains(pSocioPM.Nombre2Socio)))
                                   && ((socioPM.Apellido1Socio.Contains(pSocioPM.Apellido1Socio)))
                                   && ((socioPM.Apellido2Socio.Contains(pSocioPM.Apellido2Socio)))
                                   && ((socioPM.DUI.Contains(pSocioPM.DUI)))
                                   && ((socioPM.NIT.Contains(pSocioPM.NIT)))
                                   select socioPM;
    
                return ListaSocioPM.ToList();
            }

    No se que mas hacer no entiendo porque me ocurre esto les agradeceré mucho su ayuda o una pequeña orientación de que ocurre

    martes, 26 de agosto de 2014 17:00

Respuestas

  • hola

    es que estas usando un && en todos los campos, con que uno no tenga una concidencia ya no mostrara nada

    estas asignando todos los valores en los filtros? porque podrias hacer un filtr condicional

    var ListaSocioPM = from socioPM in ComunDB.Contexto.DatosSocioPMs.ToList()
                                   where ((pSocioPM.KeyTagCliente == "") ||(socioPM.KeyTagCliente.Contains(pSocioPM.KeyTagCliente))) 
                                   && ( (pSocioPM.Nombre1Socio == "") ||(socioPM.Nombre1Socio.Contains(pSocioPM.Nombre1Socio)))
                                   .
    							   .
                                   && ((pSocioPM.DUI == "") ||(socioPM.DUI.Contains(pSocioPM.DUI)))
                                   && ((pSocioPM.NIT == "") ||(socioPM.NIT.Contains(pSocioPM.NIT)))
                                   select socioPM;

    de esta forma podrias enviar vacio a uno de los parametros para que no aplique el filtro

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 26 de agosto de 2014 17:52

Todas las respuestas

  • hola

    es que estas usando un && en todos los campos, con que uno no tenga una concidencia ya no mostrara nada

    estas asignando todos los valores en los filtros? porque podrias hacer un filtr condicional

    var ListaSocioPM = from socioPM in ComunDB.Contexto.DatosSocioPMs.ToList()
                                   where ((pSocioPM.KeyTagCliente == "") ||(socioPM.KeyTagCliente.Contains(pSocioPM.KeyTagCliente))) 
                                   && ( (pSocioPM.Nombre1Socio == "") ||(socioPM.Nombre1Socio.Contains(pSocioPM.Nombre1Socio)))
                                   .
    							   .
                                   && ((pSocioPM.DUI == "") ||(socioPM.DUI.Contains(pSocioPM.DUI)))
                                   && ((pSocioPM.NIT == "") ||(socioPM.NIT.Contains(pSocioPM.NIT)))
                                   select socioPM;

    de esta forma podrias enviar vacio a uno de los parametros para que no aplique el filtro

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 26 de agosto de 2014 17:52
  • Hola leandro

    muchas gracias por contestar

    mire ya hice el cambio y sigue igual, no se en que estará porque me carga toda la información de la tabla pero cuando trato de filtrarlo por un parámetro especifico lo que hace es volver a cargar toda la lista y no se en que estará el problema, solo en una ocacion me dio el mensaje que no encontraba el dato en la raiz de la tabla pero luego lo volvi a compilar y ya no me dio el error.

    no entiendo porque no me carga la informacion con el filtro

    martes, 26 de agosto de 2014 21:24
  • Hola leandro ya me funciono tal como lo digiste solo era un error en la condicion del lblsucursal ya todo quedo bien muy buen aporte me parece animo y adelante

    miércoles, 27 de agosto de 2014 19:39