/ / Asp.Net - ListView in einem Repeater - Listview, asp.net-3.5, Repeater

Asp.Net - ListView in einem Repeater - listview, asp.net-3.5, Repeater

Die DataSource (meines Repeaters) ist eine Dictionary<string, IList<User>>

Ich möchte, dass der Repeater den gesamten Schlüssel meines Wörterbuchs anzeigt, und ich möchte, dass meine ListView alle Daten im Wert meines Wörterbuchs verwendet.

Es sollte eine Art Container erzeugt werden. Container erhielt einen Namen (Schlüssel des Wörterbuchs) und viele Werte (Wert des mit dem Schlüssel verknüpften Wörterbuchs).

Für den Moment habe ich so etwas bekommen:

<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<asp:ListView ID="lv" runat="server">
<LayoutTemplate>
<table>
<tr>
<td colspan="2">
GroupName (should be take from the key of the dictionary)
</td>
</tr>
<tr id="trConfigurationHeader">
<th>Name</th>
<th>Description</th>
</tr>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("Name")%></td>
<td><%#Eval("Description")%></td>
</tr>
</ItemTemplate>
</asp:ListView>
</ItemTemplate>
</asp:Repeater>

Wie kann ich meine ListView binden?

Antworten:

0 für die Antwort № 1

Es ist viel einfacher, den Schlüssel in der ItemTemplate des äußeren Repeater-Steuerelements anzuzeigen. Sie können dies wie unten beschrieben tun.

  <asp:Repeater ID="rpt" runat="server" >
<ItemTemplate>Group :
<asp:Label ID="dd" runat="server" Text="<%# Eval("Key") %>" ></asp:Label>
<asp:ListView ID="lv" runat="server" DataSource="<%# Eval("Value") %>"  >
<LayoutTemplate>
<table>

</tr>
<tr id="trConfigurationHeader">
<th>Name</th>
<th>Description</th>
</tr>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("Name")%></td>
<td><%#Eval("Description")%></td>
</tr>
</ItemTemplate>
</asp:ListView>
</ItemTemplate>