这是一个购物车的移除按钮,就是点击移除按钮的时候 就会移除CheckBoxList(cblist) 里被选中的物品信息!!!
但是为什么我的这段代码点击移除后页面没任何反应 也没有移除啊 ????
代码没有逻辑错误吧  55555555555555555555555        protected void BtnMove_Click(object sender, EventArgs e)
    {
        Session["buy"] = "";
        ArrayList buylist = new ArrayList();
        for (int i = 0; i < CBlist.Items.Count; i++)
        {
            if (!CBlist.Items[i].Selected)
            {
                Session["buy"] = Session["buy"] + CBlist.Items[i].Text + ";";
                buylist.Add(CBlist.Items[i].Text);
            }
        }
        if (Session["buy"].ToString() == "")
        {
            LblTitle.Text = "购物车中无任何物品";
            BtnMove.Visible = false;
            BtnClear.Visible = false;
            HlShow.Text = "继续购物";
            HlShow.NavigateUrl = "default.aspx";
            HlResult.Visible = false;
            CBlist.Visible = false;
        }
        else
        {
            CBlist.DataSource = buylist;
            CBlist.DataBind();
        }
    }

解决方案 »

  1.   


    for (int intIndex = 0; intIndex < CBlist.Items.Count; intIndex++)
    {
    if (this.CBlist.Items[intIndex].Selected)
    {
    CBlist.Items.RemoveAt(intIndex);
    }
    }
      

  2.   

    只看看ADD了,没有看到你代码里有Remove
      

  3.   

    for (int i = 0; i < CBlist.Items.Count; i++) 
            { 
                if (!CBlist.Items[i].Selected) 
                { 
                     CBlist.Items.Remove(CBlist.Items[i);  //直接移除
                } 
            } 
    你的Session["Buy"]都是增加的,只要你有选择的,就会有值,你的这个逻辑有问题,正常情况下,你要移除,一般会,从Session中的字符串中,或者列表中删除对应的值,而且购物车,不建议使用Session,Session是服务器端会话,服务器重新,或者用户关闭窗体,都有可能Session丢失,要用购物车就应该是客户端会话,cookie