当前位置:编程学习 > C#/ASP.NET >>

如何搜集listview?大家看看我的代码哪里错了


        List<int> list=new List<int>();
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.listView1.SelectedItems.Count < 1)
            {
                return;
            }
            ListViewItem lvi = this.listView1.SelectedItems[0];
            selectid = (int)lvi.Tag;//保存的id赋值给它
            list.Add(selectid);
         }

        //删除按钮
        private void button6_Click(object sender, EventArgs e)
        {

            if (this.listView1.SelectedItems.Count < 1)
            {
                MessageBox.Show("请选择要删除的记录", "提示");
                return;
            }
            else
            {
              
                for (int i = 0; i < list.Count; i++)
                {
                    ProductDao.deleteById(list[i]);//数据操作层
                    ListViewItem lvi = this.listView1.SelectedItems[0];
                    
                    lvi.Remove();
                }
            }
          //............部分代码省略
         }


当用户每选择listview里面的一条数据的时候,就会触发第一个事件,我就会用list存它的id,id是我在加载到listview的时候,已经存在tag里了,
当用户点击“删除”按钮的时候,我就会拿出刚才存起来的id集合,一条条的删除,并且从listview里面移除掉那条数据

现在最大的问题是删除方法那里for方法,那个list很奇怪,每循环一次,list的count就加1了。。。越来越大,是怎么回事呢?


还是大家有什么另外的方法帮我实现相同的功能呢? --------------------编程问答-------------------- 肯定是循环就多一个了  因为你后面的操作就是改变了changeselectindex的值了  你的list就会累加了,listview里本来就是有你点击或则选择的时候就有相关的信息了的,直接去循环他里面的东西就行了 只是你加载数据进去了  看你是怎么放进去的 --------------------编程问答--------------------

       //在窗体加载的时候执行 foreach (crm p in ls)
       //    {
       //       AddProduct(p);
          
        //    }
       //循环添加实体到listview1
        private void AddProduct(crm p)
        {
                ListViewItem lvi; 
                lvi = new ListViewItem(p.Order.ToString());
                lvi.Tag = p.Id;              
                lvi.SubItems.Add(p.Name);            
                lvi.SubItems.Add(p.Tel.ToString());
                lvi.SubItems.Add(p.Qq.ToString());
                lvi.SubItems.Add(p.Address.ToString());
                listView1.Items.Add(lvi);
        }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,