Ganz fies. Von den alten Listencontrols bin ich es gewohnt einfach die Templates zu deklarieren und dann meine Daten zu binden - das neue ListView-Control ist da etwas anspruchsvoller und zickt gleich rum:
An item placeholder must be specified on ListView 'ListView1'. Specify an item placeholder by setting a control's ID property to "itemPlaceholder". The item placeholder control must also specify runat="server".
Legt man jetzt ein <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> an, kracht es immer noch.
Der Trick: Das Ding muss innerhalb der LayoutTemplate-Deklaration landen, ItemTemplate zählt nicht :-), Beispiel:
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<p><%# Eval("Username") %></p>
<p><%# (bool)Eval("IsActive") ? "Aktiv" : "Nicht aktiv" %></p>
</asp:Panel>
</ItemTemplate>
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</LayoutTemplate>
</asp:ListView>