如何在ASP.Net Repeater中创建三列表

eto*_*bot 16 asp.net repeater html-table

我想能够使用ASP.Net Repeater控件创建一个具有三列和多行作为NECC的HTML表.

例如,如果数据看起来像这样

"菲尔休斯"

"Andy Petite"

"CC Sabathia"

"AJ Burnett"

"Javier Vazquez"

我想结果表是这样的

<table>
 <tr>
  <td>Phil Hughes</td>
  <td>Andy Petite</td>
  <td>CC Sabathia</td>
 </tr>
 <tr>
  <td>AJ Burnett</td>
  <td>Javier Vazquez</td>
  <td></td>
 </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Mer*_*ack 20

中继器不是理想的控制器.如果您使用的是.NET 3.5,则应使用ListView.这是一个做你要求的例子.

<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>
Run Code Online (Sandbox Code Playgroud)


Kri*_*ast 15

最好使用DataList控件,因为它具有有趣的属性RepeatColumnsRepeatDirection.

  • 我在考虑同样的事情,但我认为需要"Repeater"或扩展现有代码.如果不是这是一个很好的阅读"什么时候给我们一个DataGrid,DataList或Repeater"http://msdn.microsoft.com/en-us/library/aa479015.aspx.有点旧(我们现在有`ListView`和`GridView`),但概念仍然适用. (2认同)

Ale*_*x Z 11

比这里列出的所有例子都简单得多; 您不需要使用列表视图或在后面的代码中执行任何操作.

  <asp:Repeater ID="ExampleRepeater" runat="server" >
    <HeaderTemplate>
        <table>
            <tr>
                <th>   Column 1
                </th>
                <th>   Column 2
                </th>
                <th>   Column 3
                </th>
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <asp:LinkButton ID="RemoveButton" runat="server" Text='Remove' CommandName="Remove"
                    CommandArgument='<%# Eval("ID") %>' CausesValidation="false"></asp:LinkButton>
            </td>
            <td>

                <asp:LinkButton ID="EditLink" runat="server" Text='<%# Eval("Name")  %>'
                    CommandName="Edit" CommandArgument='<%# Eval("ID") %>' CausesValidation="false"></asp:LinkButton>

            </td>
            <td>
                <asp:Label ID="CommentTextBox" runat="server" Text='<%# Eval("Comment")  %>' />
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

  • 我不知道我们是否可以使用这样的Repeater创建表.学到了新的东西.谢谢 (2认同)

小智 7

<asp:Repeater runat="server" DataSourceID="testds">
   <HeaderTemplate>
       <table class="items">
   </HeaderTemplate>
   <ItemTemplate>
       <%# (Container.ItemIndex + 3) % 3 == 0 ? "<tr>" : string.Empty%>
           <td><img src='/blablabla/<%# Eval("id") %>.jpg' alt="" /></td>
       <%# (Container.ItemIndex + 3) % 3 == 2 ? "</tr>" : string.Empty%>
   </ItemTemplate>
   <FooterTemplate>
       </table>
   </FooterTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

  • 这不能添加1个项目的行终止符吗?应该在页眉/页脚模板中开始/结束行,然后你只需要检查索引一次并添加`</ tr> <tr>`如果`Container.ItemIndex%3 == 0 && Container.ItemIndex> 0 (3认同)