如何使用<asp:repeater>正确显示记录

时间:2018-05-01 13:34:45

标签: asp.net

我一直在寻找这个问题的答案而没有成功。 我的查询涉及一个表,其中一列(作为示例的Column2)具有多个值。 我想使用ASP.NET Repeater在Web上显示信息。

如果我运行此查询(Select * from TableName where Column1 = ‘Apple’),那么我的SQL数据库表如下所示:

enter image description here

我有2个ASP.NET页面(master.aspxdetails.aspx) master.aspx有一个像这样的链接http://localhost:1234/Folder/details.aspx?Column1=SomeStringValues details.aspx具有以下代码(无代码隐藏代码):

<asp:Repeater ID="Repeater" runat="server" DataSourceID="SQLDataSource1" >          
           <HeaderTemplate>
            <table cellspacing="0" rules="all" border="1">
            <tr>
                <th scope="col" style="width: 80px">Column1</th>
                <th scope="col" style="width: 120px">Column2</th>
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td><asp:Label ID="lblColumn1" runat="server" Text='<%# Eval("Column1") %>' /></td>
            <td><asp:Label ID="lblColumn2" runat="server" Text='<%# Eval("Column2") %>' /> </td>

        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
  </asp:Repeater>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myConn %>"
    SelectCommand="SELECT Column1, Column2 FROM TableName WHERE Column1= @ Column1">
    <SelectParameters>
        <asp:QueryStringParameter Name=" Column1" QueryStringField=" Column1" Type="String" DefaultValue="<%= Column1%>" />
    </SelectParameters>

2 个答案:

答案 0 :(得分:0)

听起来您想要对数据进行分组,然后可能使用主转发器内部的另一个转发器列出每个Column1值的所有Column2值。

<repeater>
    Column1 = <%# Eval("Column1") %>
    <repeater>
       //for each Column2 value, print value here
    </repeater
</repeater

答案 1 :(得分:0)

感谢您的提示。 我根据您的建议修改了我的代码以使用嵌套的Repeater,但输出不正确。也许我做得不对?

Output can be found from this link

    <asp:Repeater ID="RepeaterCol1" runat="server" DataSourceID="SQLDataSource1" >          

  <ItemTemplate>
  <p><strong>Column1: <%# Eval("Column1") %></strong><br />
  <asp:Repeater ID="RepeaterCol2" runat="server" DataSourceID="SQLDataSource1">
    <ItemTemplate>

     Column2: <%# Eval("Column2") %><br />

    </ItemTemplate>
  </asp:Repeater>
  </p>
  </ItemTemplate>
</asp:Repeater>