2012-02-01 12 views
11

Tengo un asp:GridView obligado. Dentro de esto tengo varias columnas, estoy tratando de obtener los datos de dos campos de base de datos concatenados en un campo.Mostrar campos de datos múltiples en BoundField de Gridview

¿Cómo hacer esto?

¿Algo como esto?

asp:BoundField DataField="field1 + ' ' + field2" HeaderText="Status" SortExpression="info" 
+0

La ortografía y las mayúsculas adecuadas siempre son un plus =) – jadarnel27

Respuesta

0

Pruebe así. Si está utilizando dos conjuntos de datos, haga una tabla de datos y vincúlela a la vista de cuadrícula.

<asp:BoundField DataField="<%# DataBinder.Eval(Container.DataItem, "f1")%>+ ' ' + <%# DataBinder.Eval(Container.DataItem, "f2")%>" HeaderText="Status" SortExpression="info"/> 
+0

¿No necesita usar archivos de plantilla para eso? ¿Campos no vinculados? – Arion

+0

Esto ... funciona? ¿Lo has probado? – pseudocoder

+0

Sí, estoy bastante seguro de que esto no funcionará. -1. – pseudocoder

19

Bastante seguro que necesita utilizar un TemplateField en lugar de BoundField para esto.

En sus columnas de GridView bloque:

<asp:TemplateField HeaderText="Name"> 
     <ItemTemplate> 
      <%# Eval("FirstName") + " " + Eval("LastName")%> 
     </ItemTemplate> 
    </asp:TemplateField> 
+0

funciona genial gracias –

1
ToolTip='<%# Eval("LastName") & "-" & Eval("FirstName") %>' 
+0

pero eso no dará información en la primera vista. –

10

simplemente para la corrección, porque he buscado una solución y vine por primera vez aquí ...

Tienes una mayor flexibilidad mediante el uso de string.Format()

<asp:TemplateField HeaderText="Status"> 
<ItemTemplate> 
    <%# string.Format("{0} {1}", Eval("field1") ,Eval("field2"))%> 
</ItemTemplate> 
</asp:TemplateField> 

Aquí también puede usar la potencia de string.Format() para formatear da te y tipos de números como descriped aquí: https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types

muestra:

<%# String.Format("{0:MM/dd/yyyy} - {1:N2}", Eval("field1"), Eval("field2")) %> 

Otra opción es hacerlo en un método personalizado en el código detrás en lugar de string.format

<asp:TemplateField HeaderText="Status"> 
    <ItemTemplate> 
     <asp:Label runat="server" Text='<%#GetStatus(Eval("Status1"),Eval("Status2")) %>'> 
     </asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Código detrás:

public string GetStatus(object Status1, object Status2) 
{ 
    return (string)Status1 + " " + (string)Status2; 
} 
+1

@ShieldOfSalvation gracias lo he agregado a mi respuesta – fubo

Cuestiones relacionadas