簡體   English   中英

如何使用asp.net控件創建具有動態列的表?

[英]How can I create a table with dynamic columns using asp.net controls?

背景:我的數據模型是List<PersonDetail> ,其中PersonDetail包含FirstNameLastName等屬性,並且List可以是任意大小。

我想創建一個可以並排比較這些PersonDetails的表。 這意味着對於每一列,我需要將數據存儲在單個PersonDetail ,並將其分布在我的8行中。 然后對下一個PersonDetail進行相同的PersonDetail

我有一個約束,我只能使用Asp.Net控件( ListViewGridViewRepeater等)以及control.DataSourcecontrol.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM