none
Referente a la carga GridView de Nombre de una FK RRS feed

  • Pregunta

  • Tengo un GridView el cual muestra los campos de la Tabla Dirección con todos sus campos entre ellos hay uno que es la clave ajena ID_TipoDirección y quería que esa clave ajena ID_TipoDireccion en vez de mostrar el número mostrará de la tabla TipoDireccion el campo Nombre, ¿Cómo lo puedo hacer?

    El GridView esta enlazado el DataSource con la clase Direccion, con lo cual de forma automatica me genera los campos.

    GridView.DAtaSource= Direccion

    Saludos

    domingo, 19 de mayo de 2019 21:45

Respuestas

Todas las respuestas

  • hola

    Tienes que aplanar los datos en una nueva entidad

    public class GridData{
    
      //propiedades de Direccion
    
       public string TipoDireccion {get;set;}
    
    }


    la idea es que en e query realices el join a la tabla Tipo Direccion y devuelvas el dato de nombre de la direccion

    Sino vas a tener que cambiar el binding

    GridView bound with Properties of nested class

    usando

    <%#DataBinder.Eval(Container.DataItem, "NestedClass.Name")%>

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 20 de mayo de 2019 13:46
  • Hola Lignou

    Vos tenés una consulta (query) a la BD, que te devuelve un DataTable en un DataAdapter, me imagino.

    Podés

    1) Cambiar el texto SQL de la consulta, así (la FK es la clave ajena o externa)

    SELECT "todos los campos menos la FK con el prefijo d. más t.Nombre" 

    FROM DIRECCION d INNER JOIN TIPO_DIRECCION t

    ON d.ID_TipoDireccion = t.ID_TipoDireccion

    o, 2)

    Cargar en un List< > de objetos personalizados, que contengan los datos que vos querés que muestre el gridView, desde el DataTable o lo que sea que te devuelve tu consulta (la original), y le pasás ese List < > al DataSource

    Me parece que 1) es más fácil ... 

    También, se puede asignar DataSource columna por columna, aunque no creo en este caso

    Saludos

    Pablo

    martes, 21 de mayo de 2019 19:21