' index.aspx
Shared i As Integer    Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand  Dim j, flag As Integer
        Session("count") = i + 1
        Me.Response.Write(Session("count"))
        For j = 1 To Session("count")
            If Session(CStr(j)) = e.Item.Cells(0).Text Then
                flag = 1
            End If
        Next
        If flag = 1 Then
            Me.Response.Write("<script language=javascript>alert('购买重复,请注意!')</script>")
        Else
            i = i + 1
            Session(CStr(i)) = e.Item.Cells(0).Text
        End If
        Me.Response.Write("<script language=javascript>window.open('Cart.aspx','_blank','width=350,height=220,top=20,left=20,scrollbars=yes,resizeable=no')</script>")
    End Sub'cart.aspx    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ii As Integer
        Dim dt As New DataTable
        Dim dr As DataRow
        dt.Columns.Add(New DataColumn("商品ID", GetType(String)))
        For ii = 1 To Session("count")
            If Me.Session("" & CStr(ii) & "") = Nothing Then
                Exit For
            End If
            dr = dt.NewRow()
            dr(0) = Me.Session("" & CStr(ii) & "")            dt.Rows.Add(dr)
        Next
        Me.DataGrid1.DataSource = New DataView(dt)
        Me.DataGrid1.DataBind()
    End Sub
请高手指教!

解决方案 »

  1.   

    有问题If flag = 1 Then
                Me.Response.Write("<script language=javascript>alert('购买重复,请注意!')</script>")执行这句它还是会执行下面的代码。加上
    exit sub
      

  2.   

    flag = 1 说明已经购买重复了,这只是一个提示,不知道这个购物车能否行的通。
    还有一个问题,就是有时候点了购买之后购物车并没有显示,要刷新一次购物车,他才显示出来,这该这么解决呢?index.aspx也不能刷新,如果刷新,就提示购买重复
      

  3.   

    如果IE默认读取缓存中的数据,而导致数据不能即时显示的话,那么就需要做些手脚
    <meta http-equiv="pragma" content="no-cache">
    meta标签中的属性是不从IE缓存中读取数据,直接执行程序