如何从绑定到GridView的数据集合中删除项目

时间:2011-07-22 03:59:49

标签: .net asp.net vb.net visual-studio-2010 webforms

大家好我正在使用VB.NET的语言创建一个简单的网站,我目前在一个部分遇到麻烦,可以真正使用一些帮助。

目前我拥有存储在数据库中的项目,当主页加载这些项目时会添加到Gridview,允许用户选择他们希望添加到购物车中的项目。从gridview中选择一个项目后,它将添加到集合中。然后将该集合添加到会话中。这是我完成该任务的代码。

  Public Function addToCollection() As Collection
    If Session("Order") Is Nothing Then
        colOrder = New Collection
        Session("Order") = colOrder
    Else
        colOrder = Session("Order")
    End If
    Return colOrder
End Function

然后,此代码将使用项集合

填充会话
    addToCollection()
    Dim gvRow As GridViewRow = gvCDs.SelectedRow
    Dim objOrder As Order = New Order
    objOrder.ID = gvRow.Cells(1).Text
    objOrder.Title = gvRow.Cells(2).Text
    objOrder.Artist = gvRow.Cells(3).Text
    objOrder.Price = gvRow.Cells(5).Text
    colOrder.Add(objOrder)

    Session("Order") = colOrder

现在在新页面上,我将通过将会话中的所有项目放入Gridview来显示用户在Session中存储的项目,这是执行此操作的代码

  gvOrder.DataSource = Session("Order")
  gvOrder.DataBind()

现在这是我被困住的部分,需要有人帮助我,我希望用户能够通过使用所选收费中的gridviews构建在gridview中选择一行,然后他们可以点击一个按钮这将从会话和gridview中删除该项目。

请有人帮我解决这个问题。 谢谢 添

1 个答案:

答案 0 :(得分:0)

确保您有一个CommandName =“Delete”的列,然后处理RowDeleting事件。这是该事件处理程序的主体。我已经添加了额外的步骤,以便更清楚地了解发生了什么。

Dim orders as Collection = DirectCast(Session("Order"), Collection)
orders.RemoveAt(e.RowIndex)