[英]How can I create a table with dynamic columns using asp.net controls?
背景:我的數據模型是List<PersonDetail>
,其中PersonDetail
包含FirstName
, LastName
等屬性,並且List可以是任意大小。
我想創建一個可以並排比較這些PersonDetails
的表。 這意味着對於每一列,我需要將數據存儲在單個PersonDetail
,並將其分布在我的8行中。 然后對下一個PersonDetail
進行相同的PersonDetail
。
我有一個約束,我只能使用Asp.Net控件( ListView
, GridView
, Repeater
等)以及control.DataSource
和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
將是表中唯一重復的部分。
我已經嘗試了所有三個控件選項,並且不使背后的代碼復雜化,似乎不支持它。
我是否可以使用可以與其他控件交互的更好的數據模型? 我見過像DataTable
這樣的解決方案,但不確定是否能解決我的問題。
有任何想法嗎?
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.