2009-05-07 13 views
10

Estoy vinculando dinámicamente una vista de cuadrícula desde una tabla en mi base de datos a la que he llamado "Sesiones". Me da la información de un método que utiliza una consulta LINQ que es algo como esto:fecha de formato asp.netTiempo en gridview

var s = from sessions in datacontext.Sessions 
        where sessions.test == id 
        orderby sessions.ID ascending 
        select sessions; 
gridView.DataSource = qsessions; 
gridView.DataBind(); 

Sesiones contiene un campo datetime que yo quiero minimizar simplemente mostrar la fecha (mes/día/año). Por lo que he leído a través de búsquedas de Google, la solución es especificar el formato en el marcado de la aspx GridView usando algo como:

<asp:TextBox ID="txtDate" runat="server" Text='<%# Eval("dateTime", "{0:MM/dd/yyyy}") %>'></asp:TextBox> 

no parece trabajar y todavía muestra el tiempo después de la fecha . ¿Se me escapa algo? Ayuda muy apreciada!

Respuesta

19

Probar:

<asp:TextBox ID="txtDate" runat="server" Text='<%# Convert.ToDateTime(Eval("dateTime")).ToString("d") %>'></asp:TextBox> 

ver este sitio útil para más opciones de formato:

http://www.mikesdotnetting.com/Article.aspx?ArticleID=23

+0

Gracias a todos . Este trabajó en el primer intento. No he probado los demás, así que probablemente también funcionen. ¡Lo aprecio! –

+0

Texto = '<% # Eval ("dateTime", "{0: d}")%>' – fubo

0

Creo que la variable de fecha y hora se evalúa como una cadena. Prueba a convertirlo a DateTime.

3

Implemente el evento OnDataBinding para TextBox en la cuadrícula.

<asp:TextBox ID="txtDate" runat="server" OnDataBinding="txtDate_DataBinding"> 
</TextBox> 

Luego, en el código de implementar detrás del evento OnDataBinding:

protected void txtDate_OnDataBinding(object sender, System.EventArgs e) 
{ 
    TextBox txt = (TextBox)(sender); 
    txt.Text = (DateTime)(Eval("YourDateField")).ToString("MM/dd/yyyy"); 
} 

Yo prefiero tener todo el código en el código subyacente y nada en la página aspx pero también puede haberse infiltrado allí también. Aquí hay un enlace a un hilo en el que describo por eso prefiero hacerlo en código subyacente:

OnDataBinding vs Inline: pros, cons and overhead

1
<asp:Label ID="lblDateBudget" runat="server" Text='<%# Eval("DateBudget", "{0:MM/d/yyyy}")%>'></asp:Label> 

¡Hola amigos, aquí está el otro tipo de solución del problema que se ha definido anteriormente. Simplemente configura la fecha del tipo de datos, no la fecha y el acceso de esta manera. Espero que esto sea útil para ti.

2

sí ASP gridview es compatible con el formato de fecha, trate de añadir

DataFormatString="{0:dd-MM-yyyy}" 
2

fecha de apoyo Gridview formatear través DataFormatString. Por ejemplo-

<asp:BoundField DataField="Date" HeaderText="Visit date" DataFormatString="{0:dd-MMM-yyyy}" >        
          </asp:BoundField> 

y su mirada así-

fecha de visita
15-Oct-2013
12-Oct-2013
11-Oct-2013