Ich binde eine ListView an eine Objektgruppe, die einwandfrei funktioniert. Wenn die Auflistung leer ist, wird der Text im Element "EmptyItemTemplate" leider nicht wie erwartet angezeigt.ASP.Net Listenansicht EmptyItemTemplate wird nicht angezeigt
Markup-Code ist
<asp:ListView ID="lvBuildingContactsGrid" runat="server"
onitemcommand="lvBuildingContactsGrid_ItemCommand" >
<LayoutTemplate>
<!-- some more html markup -->
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
<!-- some more html markup -->
</LayoutTemplate>
<ItemTemplate>
<!-- some item makup -->
</ItemTemplate>
<EmptyItemTemplate>
<p> empty text that isn't displaying </p>
</EmptyItemTemplate>
</asp:ListView>
Der Code hinter zu binden ist
ContactRoleCollection contactRoles = new ContactRoleCollection();
contactRoles.ContactRoleSearchByBuildingID(int params);
lvListView.DataSource = contactRoles;
lvListView.DataBind();
Wenn die Sammlung eine Zählung von Null zurückgibt dann die EmptyItemTemplate Text nicht angezeigt. Ich habe die Seitenquelle angesehen und sie wird überhaupt nicht gerendert. Ich habe das DataSource-Objekt nur mit Null ersetzt, d. H.
lvListView.DataSource = null
Nur um es zu testen und es funktioniert immer noch nicht. Kein Text mehr gerendert.
Ich hatte dieses Problem auf anderen Seiten, an denen ich gearbeitet habe (und aufgegebene und kluge Arbeit herum), so ist es offensichtlich nur etwas, das ich vermisse - falsch zu tun.
Jede Eingabe geschätzt
Vielleicht wird dies nicht gerendert, wenn Sie null als Datenquelle zuweisen. (Vergessen Sie nicht die .DataBind()) Verwenden Sie einfach die 4 Zeilen Code von oben. – citronas
Das war es genau. Danke vielmals –