Formatear una fecha dentro de un GridView usando DataFormatString

Si dentro de un GridView intentas colocar una fecha, dándole formato con DataFormatString:

  1. <asp:BoundField DataField="fechareg" HeaderText="fechareg" SortExpression="fechareg" DataFormatString="{0: dd/MM/yyyy}" />

Notarás que la fecha sigue saliendo con este formato:

6/21/2007 11:49:52 PM

¿Por qué no se aplica el formato? Para prevenir ataques maliciosos, el valor del campo esta codificado, HtmlEncoded. La codificación HtmlEncoding ocurre antes de aplicarse el formato, por lo cual éste no tiene efecto.

Para solucionar el problema debes apagar la codificación para ese campo, de esta manera:

  1. <asp:BoundField DataField="fechareg" HeaderText="fechareg" SortExpression="fechareg" DataFormatString="{0: dd/MM/yyyy}" HtmlEncode="false" />

Aquí puedes encontrar información sobre el formateo de strings:

http://msdn2.microsoft.com/en-us/library/26etazsy(VS.80).aspx

Cómo obtener los elementos seleccionados de un CheckBoxList

El CheckBoxList contiene varios elementos de tipo CheckBox. Para obtener todos los valores que han sido seleccionados tenemos que iterar en su colección de ListItems.

Tenemos este control:

  1. <asp:CheckBoxList ID="c02" runat="server">
  2.     <asp:ListItem>Verde</asp:ListItem>
  3.     <asp:ListItem>Blanco</asp:ListItem>
  4.     <asp:ListItem>Rojo</asp:ListItem>
  5. </asp:CheckBoxList>

En el código siguiente guardaremos en la variable cadena02 todos los CheckBoxes que han sido seleccionados. El punto y coma es solamente para usarlo como separador.

  1. Dim elemento As ListItem
  2. Dim cadena02 As String
  3. cadena02 = ""
  4. For Each elemento In c02.Items
  5.     If elemento.Selected Then
  6.         cadena02 = cadena02 & elemento.Value & "; "
  7.     End If
  8. Next

Cómo añadir JavaScript a un post de WordPress

Si quieres añadir un código de JavaScript a un post de WordPress, no puedes teclear el script directamente en el post porque WordPress le pondrá tags p en los saltos de línea y otras cosas.

Lo que tienes que hacer es colocar el script que contiene las funciones en un archivo con extensión .js y luego usar el cargador de archivos de WordPress para subir el archivo al servidor. Después añadelo al editor, solamente para copiar la liga. Una vez que tengas la liga, puedes añadir el script así (tecléalo tal cual dentro del cuerpo del post):

<script type="text/javascript" src="https://www.miblogwordpress.com/wp-content/uploads/2007/06/MisFunciones.js"></script>

Ahora puedes usar tus funciones, tecleálas tal cual dentro del cuerpo del post, por ejemplo:

<a href="javascript:FuncionEquis('Parametro1', 'Parametro2')">Ejecuta la función mediante una liga</a>

Como centrar una tabla con hojas de estilos

Antes que nada, esta manera de centrar una tabla dentro de una página ha quedado descontinuada:

<table align="center">

Los navegadores todavía lo soportan, pero la mejor manera de centrar una tabla es con hojas de estilos (CSS).

Te habrás dado cuenta de que si usas el siguiente código:

<div style="text-align:center">
  <table border="1" width="150">
    <tr>
      <td> Hola </td>
    </tr>
  </table>
</div>

la tabla se centra, pero también se centra todo su contenido!

Centrar tablas

Bueno, la manera de resolver esto es así:

Crea esta definición en tu hoja de estilos:

.TablaPrincipal
{
    width: 150px;
    margin-left: auto;
    margin-right: auto;
}

Y ahora aplícasela a tu tabla:

<table class="TablaPrincipal">
  <tr>
    <td> Hola </td>
  </tr>
</table>

Se centra la tabla con respecto a la página, pero el texto dentro de la tabla no se centra.

Centrado de Tabla con CSS

¿Por qué?
Si te preguntas por qué ocurre esto, tendrías que referirte a esta sección de la especificación de las hojas de estilo, que dice:

If both ‘margin-left’ and ‘margin-right’ are ‘auto’, their used values are equal. This horizontally centers the element with respect to the edges of the containing block.

En español:

Si ‘margin-left’ y ‘margin-right’ se establecen a ‘auto’, los valores utilizados son iguales. Esto centra horizontalmente el elemento con respecto a los bordes del bloque contenedor.

Cómo mostrar una leyenda cuando no hay registros en un DataList

El GridView tiene un template llamado EmtpyDataTemplate. Colocamos ahí un texto que diga: “No existen registros” y aparecerá cuando después del DataBind el GridView regrese vacío.

El DataList no cuenta con dicho template.

Para resolver este problema, simplemente coloca un Label al lado de tu DataList, como este:

  1. <asp:Label ID="Mensaje" runat="server" CssClass="Validador" Text="No existen registros" Visible="False">

En mi ejemplo tengo unos DropDownLists que permiten elegir el mes y el año, y luego un Button que vuelve a hacer el DataBind para ver si se encontraron registros para la fecha elegida.

En el clic de ese Button tengo el código siguiente:

  1. DataList1.DataBind()
  2. If DataList1.Items.Count = 0 Then
  3.     DataList1.Visible = False
  4.     Mensaje.Visible = True
  5. Else
  6.     DataList1.Visible = True
  7.     Mensaje.Visible = False
  8. End If

Listo, con eso haces que aparezca la leyenda “No hay registros” cuando el DataList se encuentre vacío.