Estoy vinculando un ListView a una colección de objetos que funciona bien. Lamentablemente, cuando la colección está vacía, no obtengo el texto en el elemento EmptyItemTemplate como se esperaba.ASP.Net Vista de lista EmptyItemTemplate no muestra
código de marcado es
<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>
El código detrás de BIND es
ContactRoleCollection contactRoles = new ContactRoleCollection();
contactRoles.ContactRoleSearchByBuildingID(int params);
lvListView.DataSource = contactRoles;
lvListView.DataBind();
Cuando la colección devuelve un recuento de cero, entonces el texto EmptyItemTemplate no se muestra. He visto el origen de la página y no se muestra en absoluto (en lugar de estar oculto). He reemplazado el objeto DataSource simplemente con nulo, es decir
lvListView.DataSource = null
Solo para probarlo y todavía no funciona. Ningún texto procesado nuevamente
He tenido este problema en otras páginas en las que he trabajado (y abandonado y hecho kludge), así que obviamente es algo de lo que me estoy perdiendo, haciendo incorrectamente.
Cualquier entrada apreciado
Quizás esto no se represente si asigna nulo como fuente de datos. (No olvides .DataBind()) Solo usa las 4 líneas de código de arriba. – citronas
Eso fue exactamente. Muchas gracias –