PBEEQP ePBEEQP = new PBEEQP();
        ePBEEQP.EQPNAME = txtEQPNAME.Text.Trim().ToString();
        ePBEEQP.EQPTYPE = txtEQPTYPE.Text.Trim().ToString();
        ePBEEQP.EQPCAP = double.Parse(txtEQPCAP.Text.Trim().ToString());
        ePBEEQP.EQPQUTY = int.Parse(txtEQPQUTY.Text.Trim().ToString());
        ePBEEQP.EQPCAPSUM = double.Parse(txtEQPCAPSUM.Text.Trim().ToString());
        ePBEEQP.EQPCOS = double.Parse(txtEQPCOS.Text.Trim().ToString());
        ePBEEQP.EQPREMARK = txtEQPREMARK.Text.Trim().ToString();
        arrayList.Add(ePBEEQP);
        GridView1.DataSource = arrayList;
        GridView1.DataBind();
 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        for (int i = 0; i < arrayList.Count; i++)
        {
            PBEEQP ePBEEQP = (PBEEQP)arrayList[i];
            if (ePBEEQP.EQPNAME == e.Keys["EQPNAME"].)
            {
                if (ePBEEQP.EQPTYPE == e.Keys["EQPTYPE"].ToString())
                {
                    arrayList.RemoveAt(i);
                    break;
                }            }
        }        // string str = (string)Session["EQPID"];
        //ArrayList arraylistnew = new ArrayList();        GridView1.DataSource = arrayList;
        GridView1.DataBind();
    }我要实现的是,我在页面新增一条数据就在arraylist中保存一条数据,没有保存到数据库的,仅仅是临时存储的。然后要删除一行,根据名称删除一行数据,怎么进行比较呀。

解决方案 »

  1.   

    Remove,和RemoveAt,你也可以把ArrayList当成数组来处理,通过遍历数组找到要删除元素的索引,然后RemoveAt删除
      

  2.   

    for (int i = 0; i < arrayList.Count; i++)
            {
                PBEEQP ePBEEQP = (PBEEQP)arrayList[i];
                if (ePBEEQP.EQPNAME == e.Keys["EQPNAME"].)
                {
                    if (ePBEEQP.EQPTYPE == e.Keys["EQPTYPE"].ToString())
                    {
                        arrayList.RemoveAt(i);
                        break;
                    }            }
            }
    关键是这个循环里面怎么写
      

  3.   

    不懂你问什么,你这不是已经remove了?还要删除什么?页面上的一行?还是什么?问题很不明确
      

  4.   

    你要删除GridView1里面的一行是吧?你不要想成删除,你想成刷新,清空GridView1,重新绑定arrayList,刷新?OK不?