如何使用asp.net控件创建包含动态列的表?

时间:2017-09-01 19:59:00

标签: c# asp.net html-table datamodel

背景:我的数据模型是List<PersonDetail>,其中PersonDetail包含FirstNameLastName等属性,而List可以是任意大小。

我想创建一个可以并排比较这些PersonDetails的表格。这意味着对于每个列,我需要将数据放在一个PersonDetail中并将其分布在我的8行中。然后对下一个PersonDetail执行相同操作。

我有一个约束,我只能使用Asp.Net控件(ListViewGridViewRepeater等)以及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这样的解决方案,但不确定这是否能解决我的问题..

有什么想法吗?

1 个答案:

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