El uso de VS 2008, tengo un control Repeater:Texto predeterminado para el control Repeater vacío
<asp:Repeater runat="server" ID="storesRep" DataSourceID="storeSqlDataSource"
OnItemDataBound="StoresRep_ItemDataBound">
<ItemTemplate>
<table style="padding:0px">
<tr>
<td style="width:200px"><asp:Label ID="infoLbl" runat="server">
Choose stores for upload:</asp:Label>
</td>
<td style="width:110px">
<asp:Label ID="storeLbl" runat="server" Text='<%# Bind("Name") %>'>
</asp:Label>
</td>
<td><asp:CheckBox runat="server" ID="storeCheck" /></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="storeSqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:someConnectionString %>"
SelectCommand="SELECT [StoreId], [Name] FROM [Store] Order By [Name]">
</asp:SqlDataSource>
Ahora me gustaría mostrar un texto predeterminado como "No hay tiendas encontraron" si la fuente de datos no devolvió artículos de la base de datos. Hasta ahora, he utilizado principalmente GridView
donde no tuve problemas debido al atributo EmptyDataText
.
@marquito Si se siente triste por la disonancia semántica, siempre puede usar un 'Panel' y mostrar/ocultar eso en' OnItemDataBound' en lugar de FooterTemplate ... – pseudocoder
@pseudocoder la tristeza proviene de la falta de un out de la caja para hacerlo. Además, me veo obligado a verificar cada elemento de datos solo para verificar si el resultado final está vacío. También debería haber un evento "OnFinishedDataBinding" que evitaría llamadas innecesarias a OnItemDataBound. – marquito
Pude utilizar este enfoque con éxito después de varios intentos con diferentes métodos. Creo que usar 'panel' en lugar de' label' agregaría aún más flexibilidad, y espero probar eso también. ¡Gracias por compartir esto! –