首页 > 解决方案 > 在 Datalist 单元格中显示产品的多个图像

问题描述

我有一个项目,我必须在其中展示电子商务网站等产品(带有滑动多个图像)。

我想在一个单元格中显示每个产品的多个图像。

我有 2 个名为 Product_Master 和 Product_Images 的表,如下所示:-

Product_Master :-

Id Pcode Pname MRP DP

1 1234 三星移动 20000 18000

2 2345 小米手机 15000 14000

3 3456 真我手机 12000 10000

4 4567 诺基亚移动 9000 8000

产品_图片:-

Id Pcode ImgName

1 1234 三星1.jpg

2 1234 三星2.jpg

3 1234 三星3.jpg

4 1234 三星4.jpg

5 2345 米1.jpg

6 2345 Mi2.jpg

7 2345 Mi3.jpg

8 3456 Realme1.jpg

9 3456 Realme2.jpg

10 4567 诺基亚1.jpg

11 4567 诺基亚2.jpg

12 4567 诺基亚3.jpg

加入这些表后,我在数据表中得到了 12 行

Product_Images.Id--Product_Master.Pcode--Product_Images.ImgName--Product_Master.Pname--Product_Master.MRP--Product_Master.DP

1 1234 Samsung1.jpg 三星移动 20000 18000

2 1234 Samsung2.jpg 三星手机 20000 18000

3 1234 Samsung3.jpg 三星手机 20000 18000

4 1234 Samsung4.jpg 三星手机 20000 18000

5 2345 Mi1.jpg 小米手机15000 14000

6 2345 Mi2.jpg 小米手机 15000 14000

7 2345 Mi3.jpg 小米手机 15000 14000

8 3456 realme1.jpg 真我手机 12000 10000

9 3456 Realme2.jpg Realme Mobile 12000 10000

10 4567 Nokia1.jpg 诺基亚手机 9000 8000

11 4567 Nokia2.jpg 诺基亚手机 9000 8000

12 4567 Nokia3.jpg 诺基亚手机 9000 8000

现在我想为包含的产品显示 4 个单元格

在这里,我附上了用于将数据与 datalist 及其中继器绑定的代码。应用给定代码后,我得到了 12 个单元格,其中包含具有不同图像的产品的相同信息。

但我想在单个单元格中将每个产品信息及其多个图像显示为滑块。意味着我想显示 4 个单元格,产品图像可以在其中滑动...

请帮帮我。

我希望你能理解我的担心......

谢谢

<asp:DataList ID="DatListProduct" runat="server" OnItemDataBound="DatListProduct_ItemDataBound">
<ItemTemplate>
    <asp:Label ID="lblProdName" runat="server" Font-Bold="true" Font-Size="Medium" Text='<%# Eval("Pnamae")%>'></asp:Label>
    <asp:Label ID="lblProdPcode" runat="server" Font-Bold="true" Font-Size="Medium" Text='<%# Bind("Pcode") %>' Visible="false"></asp:Label>
    <asp:Repeater ID="InnerRepeaterCourseResults" runat="server">
        <ItemTemplate>
            <asp:Image ID="ImgProdImg" runat="server" Height="220px" ImageUrl='<%# Eval("imgname", "~Gallery/{0}")%>' Width="220px" />
        </ItemTemplate>
    </asp:Repeater>
    <asp:Label ID="lblProdDP" runat="server" Font-Bold="true" Font-Size="Large" Text='<%# Bind("DP") %>'></asp:Label>
    <asp:Label ID="lblProdMRP" runat="server" Font-Bold="false" Font-Strikeout="true" Font-Size="Medium" Text='<%# Bind("MRP") %>'></asp:Label>
</ItemTemplate>

    Private Sub DataListProducts()
        Dim da As New SqlDataAdapter
        Dim ds As New DataSet
        da = New SqlDataAdapter("SELECT Product_Images.Id, 
        Product_Master.Pcode, Product_Images.Imgname, 
        Product_Master.Pname, 
        Product_Master.MRP, Product_Master.DP FROM Product_Master INNER 
        JOIN Product_Images ON Product_Master.Pcode = 
        Product_Images.Pcode", con)
        Dim dt As New DataTable
        da.Fill(dt)
        Dim dtp As New DataTable()
        dtp.Columns.AddRange(New DataColumn(5) {New 
        DataColumn("Id",GetType(Integer)), 
        New DataColumn("Pcode", GetType(String)), 
        New DataColumn("Pname", GetType(String)), 
        New DataColumn("MRP", GetType(Decimal)), 
        New DataColumn("DP", GetType(Decimal)), 
        New DataColumn("Imgname", GetType(String))})
        For i = 0 To (foundRows.Count - 1)
            dtp.Rows.Add(foundRows(i)("Id"), foundRows(i)("Pcode"), 
            foundRows(i)("Pname"), foundRows(i)("MRP"), foundRows(i) 
            ("DP"), foundRows(i)("Imgname"))
        Next
        Session("dtp") = dtp
        DatListProduct.DataSource = dtp
        DatListProduct.DataBind()
    End Sub

    Protected Sub DatListProduct_ItemDataBound(sender As Object, e As 
    DataListItemEventArgs)
        Dim dtp As New DataTable()
        dtp.Columns.AddRange(New DataColumn(5) {New DataColumn("Id", 
        GetType(Integer)), New DataColumn("Pcode", GetType(String)), New 
        DataColumn("Pname", GetType(String)), New DataColumn("MRP", 
        GetType(Decimal)), New DataColumn("DP", GetType(Decimal)), New 
        DataColumn("Imgname", GetType(String))})
        dtp = Session("dtp")
        If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = 
        ListItemType.AlternatingItem Then
              Dim Pcode As String = 
              (TryCast(e.Item.FindControl("lblProdPcode"), Label)).Text
              Dim InnerRepeaterCourseResults As Repeater = 
              TryCast(e.Item.FindControl("InnerRepeaterCourseResults"), 
              Repeater)
              InnerRepeaterCourseResults.DataSource = dtp.[Select]("Pcode=" & 
              Pcode & "").CopyToDataTable()
              InnerRepeaterCourseResults.DataBind()
       End If
    End Sub

标签: c#asp.netvb.netvisual-studio-2015

解决方案


推荐阅读