1

我正在使用 aSqlDataSource带回要在下拉列表中显示的数据。每个下拉列表的标题是品牌,在下拉列表中我希望带回每个品牌的三个产品。

<asp:SqlDataSource ID="Categories" runat="server" ConnectionString="<%$ ConnectionStrings:Categories %>" SelectCommand="SELECT * FROM CATEGORY WHERE CategoryID <5"></asp:SqlDataSource>
<asp:ListView ID="ListView2" runat="server" DataSourceID="Categories">
<LayoutTemplate>
    <ul>
    <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
    <asp:SqlDataSource ID="images" runat="server" ConnectionString="<%$ ConnectionStrings:Categories %>" SelectCommand="SELECT * FROM ITEM ORDER BY Category_ref"></asp:SqlDataSource>
    <li id="<%# Eval("CategoryName") %>">
    <a href="<%# Eval("CategoryName", "{0}.aspx") %>"><%# Eval("CategoryName") %></a>
    <div class="dropDown">
        <div class="listItem">
        <asp:ListView ID="listview3" runat="server" DataSourceID="images">
            <LayoutTemplate>
            <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
            </LayoutTemplate>
            <ItemTemplate>
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("ItemID","Product.aspx?id={0}") %>'>
                <p class="<%# Eval("Category_ref", "brand{0}") %>">
                <asp:Image ID="image" CssClass="dropImg" runat="server" ImageUrl='<%# Eval("PhotoPath", "images/products/{0}") %>' />
                <br />
                <span><%# Eval("ItemName") %></span>

                <%# Eval("ItemID").ToString() %>
                </p>
            </asp:HyperLink>
            </ItemTemplate>
        </asp:ListView>
        </div>
    </div>
    </li>
</ItemTemplate>
</asp:ListView>

这就是我从数据库中返回的品牌名称以及产品信息的整个导航。

第二个SqlDataSource查询是我需要修复的地方,因此它只选择 3 个产品。如果有第四个,它将把它排除在外。

4

1 回答 1

3

在 SQL Server 中:

SELECT TOP 3 * FROM ITEM ORDER BY Category_ref

在 MySQL 中:

SELECT * FROM ITEM ORDER BY Category_ref LIMIT 3

您应该始终用您的问题指定您选择的数据库,并将问题归结为本质(所有 ASP 代码都是无关紧要的,只会让人们对您的问题感到害怕)。

于 2013-05-15T12:47:19.680 回答