Asp.Net - Repeater中的ListView

时间:2010-06-29 18:47:19

标签: listview asp.net-3.5 repeater

我的转发器的DataSource是Dictionary<string, IList<User>>

我希望转发器显示我的字典中的所有Key,我希望我的ListView能够使用我的字典值中的所有数据。

应该生成某种容器。容器有一个名称(字典的键)并获得了许多值(与键相关联的字典的值)。

现在,我有类似的东西:

<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>

如何绑定我的ListView?

1 个答案:

答案 0 :(得分:0)

在外部Repeater Control的ItemTemplate中显示Key要容易得多。 您可以执行以下操作。不完全确定如何在内部容器(ListView)中显示Key

  <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>