背景:我的数据模型是List<PersonDetail>
,其中PersonDetail
包含FirstName
,LastName
等属性,而List可以是任意大小。
我想创建一个可以并排比较这些PersonDetails
的表格。这意味着对于每个列,我需要将数据放在一个PersonDetail
中并将其分布在我的8行中。然后对下一个PersonDetail
执行相同操作。
我有一个约束,我只能使用Asp.Net控件(ListView
,GridView
,Repeater
等)以及control.DataSource
和{{1创建我的表。
我想要做的模板是:
control.DataBind()
上述<LayoutTemplate>
<table>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder1"></asp:PlaceHolder>
</tr>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder2"></asp:PlaceHolder>
</tr>
<!-- and so on -->
</table>
</LayoutTemplate>
<ItemTemplate1>
<td>
<asp:Label ID="LabelFirstName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "FirstName")%>'></asp:Label>
</td>
</ItemTemplate1>
<ItemTemplate2>
<td>
<asp:Label ID="LabelLastName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LastName")%>'></asp:Label>
</td>
</ItemTemplate2>
<!-- and so on -->
将是表格中重复的唯一部分。
我已经尝试了所有三种控制选项,但它似乎不会受到支持而不会使代码隐藏变得复杂。
我可以使用哪种更好的数据模型可以与另一个控件连接?我已经看过像ItemTemplates
这样的解决方案,但不确定这是否能解决我的问题..
有什么想法吗?
答案 0 :(得分:0)
<table border="1">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "FirstName") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "LastName") %></td>
</tr>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "Street") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "City") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>