Cómo mostrar un mensaje si un DataList o Repeater está vacío

El GridView provee una propiedad EmptyDataText en la que nosotros establecemos un texto que se desplegará si no se encuentran registros.

En un DataList no existe esta propiedad. Para mostrar el mensaje nos tenemos que valer de un Label:

ASP:
  1. <asp:Label ID="Mensaje" runat="server" Text="No se encontraron registros."></asp:Label>

Después tenemos que utilizar el evento DataBinding para mostrar el mensaje y el evento ItemDataBound para ocultarlo.

El evento DataBinding ocurre primero que ItemDataBound, es por eso que al principio lo mostramos, y luego en el siguiente evento probamos si existen registros, y si no existen, lo mostramos.

La lógica queda así:

VB.NET:
  1. Protected Sub DataList2_DataBinding(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataList2.DataBinding
  2.  
  3.     Mensaje.Visible = True
  4.  
  5. End Sub
  6.  
  7.  
  8. Protected Sub DataList2_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList2.ItemDataBound
  9.  
  10.     If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
  11.         Mensaje.Visible = False
  12.     End If
  13.    
  14. End Sub

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.