Wiążę ListView z kolekcją obiektów, która działa poprawnie. Niestety, gdy kolekcja jest pusta, nie otrzymuję tekstu w pustym elemencie EmptyItemTemplate, tak jak się spodziewałam.Widok listy ASP.Net EmptyItemTemplate nie wyświetla się
kod Markup jest
<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>
Kod za wiązanie jest
ContactRoleCollection contactRoles = new ContactRoleCollection();
contactRoles.ContactRoleSearchByBuildingID(int params);
lvListView.DataSource = contactRoles;
lvListView.DataBind();
Gdy kolekcja zwraca liczbę zero, wówczas tekst EmptyItemTemplate nie wyświetla. Oglądałem źródło strony i nie jest ono renderowane (a nie ukrywane). Zastąpiłem obiekt DataSource po prostu wartością null, tj.
Tylko do testowania i nadal nie działa. Żaden tekst nie jest ponownie renderowany.
Miałem ten problem na innych stronach, nad którymi pracowałem (i zrezygnowałem z pracy z kludge), więc jest to po prostu coś, czego mi brakuje - robiąc niepoprawnie.
Wszelkie dane wejściowe doceniane
Może to nie będzie renderowanie, jeśli przypiszesz null jako źródło danych. (Nie zapomnij o .DataBind()) Wystarczy użyć 4 linii kodu z góry. – citronas
To było dokładnie to. Wielkie dzięki –