我一直在寻找这个问题的答案而没有成功。 我的查询涉及一个表,其中一列(作为示例的Column2)具有多个值。 我想使用ASP.NET Repeater在Web上显示信息。
如果我运行此查询(Select * from TableName where Column1 = ‘Apple’
),那么我的SQL数据库表如下所示:
我有2个ASP.NET页面(master.aspx
和details.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>
答案 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>