【问题标题】:Loop over Session Collection variable in ASPX page在 ASPX 页面中循环会话集合变量
【发布时间】:2019-08-21 20:58:35
【问题描述】:

对于一个任务,我必须创建一个购物车,每个项目都作为一个对象添加到一个名为“ShoppingCart”的 Session 变量中

例子:

'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)

我现在必须在“结帐”页面上显示 Session 变量的内容,以便用户可以看到他们的所有项目。是否可以在 .aspx 页面上循环 Collection 或者是否有更好的方法来动态显示 Session 变量的内容?

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

理想输出示例:

<html>
  <header>
  </header>
  <body>
      <table>
          <tr>
          <td>Cheese</td>
          <td>x1</td>
          <td><button>Remove</button></td>
          </tr>
      </table>
  </body>
</html>

【问题讨论】:

  • Session("ShoppingCart") 中存储的对象类型是什么?大概它是一个产品列表,如果是这样,则循环遍历列表或对列表进行数据绑定,例如在 GridView- 或 Repeater-control 中。
  • @Esko 是的,它是一个Collection,但是我究竟该如何循环遍历它,以及循环遍历对象集合并以合适的方式返回它们的详细信息的最佳方式是什么,我应该在服务器上执行吗?侧面还是从.aspx页面可行?
  • 服务器端当然,你不能在客户端访问会话(没有ajax)。因此,请阅读有关 gridview 或 repeater-controls 的数据绑定。

标签: asp.net vb.net


【解决方案1】:

假设这是 WebForms,您可以将产品绑定到 Repeater 或 DataList。

<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

【讨论】:

  • 我确定它可以工作,但是我收到一个错误The server tag is not well formed 指的是&lt;asp:Label ID="lblProductName" runat="server" Text="&lt;%#Eval("ProductName")%&gt;" /&gt;
  • 尝试对 Text 属性使用单引号。 我刚刚编辑了答案以使用单引号。我刚刚测试了我的结果,就是这样。
  • @AriVictor 最后的更改是否为您解决了错误?如果是,您能否将答案标记为已接受?
猜你喜欢
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
相关资源
最近更新 更多