1

我想以如下格式显示我的数据:

<table>
  <tr>
     <td></td>
     <td></td>
     <td></td>
     ...
  </tr>
  <tr>
     <td></td>
     <td></td>
     <td></td>
     ...
  </tr>
   .
   .
   .
</table>

我对如何表示数据有点困惑。我正在考虑为此结构使用中继器控件。但是它需要嵌套的中继器控件还是可以使用单个中继器控件来完成?有人可以建议我正确的方法吗?

提前致谢。

更新 :: 在我的情况下,它们不是静态顺序,它们是完全动态的。在某些情况下可能有单,但在某些情况下,我的数量是 10-20。我需要在这些结构中显示测试分数。对于例子:

<table>
  <tr>
    <td>10</td>
    <td>5</td>
    <td>30</td>
  </tr>
  <tr>
    <td>40</td>
    <td>34</td>
  </tr>
   .
   .
   .
<table>

同样明智。简而言之,当一个用户的得分记录完成时,我需要在新的新鲜中添加新记录。

4

4 回答 4

4

为什么要使用中继器?它是相当过时的组件。请改用 ListView。它在配置和操作方面更加灵活。

请使用 Merrimack 建议的解决方案

<asp:ListView ID="myListView" runat="server" 
   DataSourceID="YOURDATASOURCE" GroupItemCount="3">

   <LayoutTemplate>
      <table>
         <tr>
            <td>
               <table border="0" cellpadding="5">
                  <asp:PlaceHolder runat="server" ID="groupPlaceHolder"></asp:PlaceHolder>
               </table>
            </td>
         </tr>
      </table>
   </LayoutTemplate>

   <GroupTemplate>
      <tr>
         <asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
      </tr>
   </GroupTemplate>

   <ItemTemplate>
      <td>
         <%# Eval("FullName") %>
      </td>
   </ItemTemplate>
</asp:ListView>
于 2012-11-15T14:21:48.643 回答
1

旧经典方式的一种解决方案是嵌套循环

<table>
<% for(int loop1 = 0; loop1 <= condition1 ; loop1++){
       System.Console.WriteLine("<tr>");
       for(int loop2 = 0; loop2 <= condition2 ; loop2++){
           System.Console.WriteLine("<td>");
           System.Console.WriteLine("Your Data");
           System.Console.WriteLine("</td>");
       }
       System.Console.WriteLine("</tr>");
   } %>
</table>
于 2012-11-15T14:28:49.487 回答
0

你可以像这样制作一个中继器

<asp:Repeater ID="rptMyRepeater" runat="server" >
     <HeaderTemplate>
          <table>
            <th>
               <td>
                  Header 1
               </td>
               <td>
                  Header 2
               </td>
             </th>
      </HeaderTemplate>
      <ItemTemplate>
          <tr>
             <td>
                 <asp:HiddenField runat="server" ID="hfHolderId" Value='<%# DataBinder.Eval(Container.DataItem, "HolderId") %>' />
                 <asp:TextBox runat="server" ID="tbText1" Text='<%# DataBinder.Eval(Container.DataItem, "Text1") %>' />
             </td>
             <td>
                 <asp:TextBox runat="server" ID="tbText2" Text='<%# DataBinder.Eval(Container.DataItem, "Text2") %>' />
             </td>
           </tr>
       </ItemTemplate>
       <FooterTemplate>
           </table>
       </FooterTemplate>
</asp:Repeater>

然后有一个类来保存你的数据

    public class MyHolder()
    {
         public string HolderId {get;set;}
         public string Text1 {get;set;}
         public string Text2 {get;set;}
    }

然后列出这些并将它们绑定到您的中继器

    List<MyHolder> myHolderList = new List<MyHolder>();
    myHolderList.Add(new MyHolder {1, "hi", "hello"});
    //Add a few of these

    rptrptMyRepeater.DataSource = myHolderList;
    rptMyRepeater.DataBind();

所有这一切都只是我的头脑,所以我在那里有语法错误

于 2012-11-15T14:36:26.607 回答
0

我终于用 asp.net 中的动态表完成了这项工作。就像 RDSAGAR 所做的那样,但是通过代码背后的代码。感谢您的所有支持。

于 2012-11-28T09:23:59.453 回答