希望您今天在从事的任何项目上都有一个良好的开端。我今天从一个有趣的问题开始,我需要解决涉及 ASP.net 中的嵌套中继器(从 SQL 数据库中获取数据以构建与教育和福利相关的赠款数据的网页结果)。
我有一个转发器,它使用 SQL 查询根据我的 SQL 表中的特定列(类别列)拉回数据:
<asp:SqlDataSource ID="SqlDataSourceGrantCategories" runat="server"
ConnectionString="<%$ ConnectionStrings:KenticoCMSECommerceTestingConnectionString %>"
SelectCommand="SELECT * FROM [customtable_SampleTable] ORDER BY Category">
</asp:SqlDataSource>
现在我想要一个额外的嵌套转发器,它有另一个向它提供数据的查询,但是这个内部转发器基于第一个转发器提取的 Category 列(来自 SQL 表)的查询。这是我到目前为止所拥有的:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSourceGrantCategories">
<ItemTemplate>
<%# Eval("Category") %> //I just need this piece of data, but used below.
<br />
<asp:Repeater ID="Repeater2" runat="server" DataSourceID="SqlDataSourceGrantInfo">
<asp:SqlDataSource ID="SqlDataSourceGrantInfo" runat="server" ConnectionString="<%$ ConnectionStrings:KenticoCMSECommerceTestingConnectionString %>
SelectCommand="SELECT * FROM [customtable_SampleTable] WHERE Category = <%# Eval('Category') %>">
<ItemTemplate>
<%# Eval("Title") %>
</ItemTemplate>
</asp:Repeater>
<br />
</ItemTemplate>
</asp:Repeater>
所以基本上,第二个嵌套的 SqlDataSource 内部的 Eval 语句没有被正确评估,它给我一个错误,上面写着“服务器标记格式不正确”。有什么方法可以让我使用或使变量等于第一个 Eval("Category") 语句,然后我可以在我的第二个 SQL 查询字符串中使用它?
抱歉,如果这令人困惑,如果需要,我很乐意进一步详细说明。