我将尝试对此采取不同的看法,因为我的最后一次尝试并不清楚:
我运行了一个SQL查询并产生了以下结果:
我现在想构建一个向用户显示这些结果的ASP.NET页面
我正在尝试放置一个列表视图来向用户显示,并在其中显示一个gridview来显示用户拥有的项目。
到目前为止,我的代码看起来像这样:
<asp:ListView ID="lvPersonItems" runat="server" DataSourceID="sdsResults" GroupItemCount="3" EnableViewState="true" GroupPlaceholderID="groupPlaceHolder" ItemPlaceholderID="itemPlaceHolder">
<LayoutTemplate>
<table>
<tr>
<td>
<table cellpadding="15">
<asp:PlaceHolder ID="groupPlaceHolder" runat="server" />
</table>
</td>
</tr>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</tr>
</GroupTemplate>
<ItemTemplate >
<td>
<h3><%# Eval("Forename")%> <%# Eval("Surname")%></h3>
<asp:GridView BorderStyle="None" ID="gvItems" AutoGenerateColumns="false" runat="server" DataSource='<%# Eval("Description") %>'>
<Columns>
<asp:BoundField DataField="Description" HeaderText="Description" />
</Columns>
</asp:GridView>
<EmptyDataTemplate>
<div style="background-color:Gray">No orders exists!</div>
</EmptyDataTemplate>
</td>
</ItemTemplate>
</asp:ListView>
<asp:SqlDataSource ID="sdsResults" runat="server"
ConnectionString="<%$ ConnectionStrings:conString %>"
SelectCommand="sp_Test_Proc" SelectCommandType="StoredProcedure">
</asp:SqlDataSource>
然而,在运行此操作时,我收到以下错误:
A field or property with the name 'Description' was not found on the selected data source.
有人可以对此有所了解吗? :)
更新
根据伊卡洛斯的建议,我现在有以下内容:
但是,它包含多个数据,我似乎无法将其浓缩为2个用户,1个包含2个项目,另一个包含1个项目。
答案 0 :(得分:1)
你的问题在这里:
<asp:GridView BorderStyle="None" ID="gvItems"
AutoGenerateColumns="false" runat="server"
DataSource='<%# Eval("Description") %>'>
请注意,您正尝试将属性Description作为DataSource绑定到GridView。
数据源应该是您已经进一步定义的SQL数据源;因此将其更改为:
<asp:GridView BorderStyle="None" ID="gvItems"
AutoGenerateColumns="false" runat="server" DataSource="sdsResults">