代码之家  ›  专栏  ›  技术社区  ›  Ari

在ASPX页中循环会话集合变量

  •  0
  • Ari  · 技术社区  · 5 年前

    对于必须创建购物车的分配,每个项目都作为对象添加到名为“shopping cart”的会话变量中。

    例子:

    'Created elsewhere eg. Home.aspx.vb'
    Session("ShoppingCart") = New Collection
    
    'On a Product Page, Product is a Class that holds the product name/price'
    Dim product As New Product
    product.SetName("Cheese")
    Session("ShoppingCart").add(product)
    

    我现在必须在“签出”页面上显示会话变量的内容,这样用户就可以看到他们所有的项目。是否可以在 .aspx 页面还是有更好的方法动态显示会话变量的内容?

    我认为在服务器上构建输出可能更好,因为我需要访问每个对象名来显示它。

    理想输出示例:

    <html>
      <header>
      </header>
      <body>
          <table>
              <tr>
              <td>Cheese</td>
              <td>x1</td>
              <td><button>Remove</button></td>
              </tr>
          </table>
      </body>
    </html>
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Gabe    5 年前

    假设这是WebForms,您可以将产品绑定到转发器或数据列表。

    <asp:Repeater ID="rptProducts" runat="server">
            <ItemTemplate>
                <asp:Label ID="lblProductName" runat="server" Text='<%#Eval("ProductName")%>' />
            </ItemTemplate>
        </asp:Repeater>
    

    并从后面的代码绑定到它:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
            Dim products As Collection = DirectCast(Session("ShoppingCart"), Collection)
    
            rptProducts.DataSource = products
            rptProducts.DataBind()
    
        End Sub