Bueno, si es un bug pero no estoy seguro que a todos les pase. Estoy usando el RTM de VS2008 y me pasa lo siguiente:
- Arrastro y tiro un ListView dentro de una página Web.
- Entro a vista de diseño y añado el siguiente código a las plantillas:
<asp:ListView ID="ListView2" runat="server" DataSourceID="LinqDataSource1"
ItemPlaceholderID="itemContainer">
<LayoutTemplate>
<ul ID="itemContainer" runat="server" class="list">
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<img alt='<%#Eval("Name") %>' src='<%#Eval("Path") %>' />
</li>
</ItemTemplate>
</asp:ListView>
- Le das View in Browser y ya te das cuenta que en el HTML no esta rendereando el UL que debería renderear por medio del LayoutTemplate.
¿A alguien le ha pasado esto?
Cheers!
UPDATE
El Maiki me mando esta solución:
Dentro del ul debes de poner el <asp:Placeholder>
Algo como:
<LayoutTemplate>
<ul runat=”server”>
<asp:PlaceHolder runat=”server” id=”itemContainer”/>
</ul>
</LayoutTemplate>Tu ítem container no es tu ul, sino el placeholder dentro del ul.
Así al renderearse el listview, conserva lo que esta fuera del placeholder y sustituye este último por cada Item usando el ItemTemplate.
Y si funciona. Sin embargo, muchos demos que he visto en línea (incluyendo el VS2008 Training Kit) no hacen uso de esta característica. Hay por ahí un video de ScottGu que hace esta demo inclusive… mmm… extraño… muy extraño.
Thanks Maiki.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.