Auf sehr einfache Weise können Sie sowohl Ihre Kopfzeilen als auch eine Meldung erhalten, die besagt, dass keine Daten vorhanden waren.
Sie machen Ihre LayoutTemplate
wie die folgende Idee:
<LayoutTemplate>
<table>
<tr>
<td>a header</td>
<td>another header</td>
<td>third header</td>
</tr>
<tr runat="server" id="itemPlaceholder">
<td colspan="3"
There is no data!
</td>
</tr>
</table>
</LayoutTemplate>
Beachten Sie, dass die tr
das heißt, der Platzhalter (gekennzeichnet durch id="itemPlaceholder") enthält tatsächlich etwas. Er enthält das, was angezeigt werden soll, wenn keine Daten vorhanden sind. Im dahinter liegenden Code setzen Sie dann die <EmptyTemplate>
gleich sein mit dem <LayoutTemplate>
(so dass Sie nur eine solche Vorlage zu pflegen haben). Ich mache es folgendermaßen:
Private Sub lvwThings_Init(sender As Object, e As EventArgs) Handles lvwThings.Init
lvwThings.EmptyDataTemplate = lvwThings.LayoutTemplate
End Sub
Die Logik ist also wie folgt:
Wenn es es Daten, d.h. wenn die tatsächlichen <LayoutTemplate>
verwendet wird, wird die gesamte <tr runat="server" id="itemPlaceholder">
, mit dem td
und der darin enthaltene Text werden durch den <ItemTemplate>
.
Aber wenn es eine keine Daten, d.h. wenn die <EmptyTemplate>
verwendet wird (anstelle des <LayoutTemplate>
), nichts innerhalb der <EmptyTemplate>
wird ersetzt, so dass alles so angezeigt wird, wie es ist.