zoukankan      html  css  js  c++  java
  • 用联系的观点看问题——有感DataGridView多选删除问题的解决

    低级错误!本来想实现一个简单的应用。在DataGridView控件中,加入CheckBox列实现多选删除。
    开始的思路,遍历CheckBox列,如果打了勾则进行删除操作:
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    object obj = dataGridView1.Rows[i].Cells[0].Value;
                    string select = obj == null ? "" : obj.ToString();
                    if (select.Trim() == "1")
                    {
                        //在这里从数据源中删除数据行
                    }
                }
    测试发现时而准,时而不准,引起警觉,恍然大悟,这绝对是个低级错误啊。因为数据绑定控件有个方便的特性,数据源的变化可以直接体现到控件的表现上,可是在这里,方便变成了不方便,它会导致遍历的不准确。
    第二种思路,先收集选择的条目,然后进行统一删除。
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    object obj = dataGridView1.Rows[i].Cells[0].Value;
                    string select = obj == null ? "" : obj.ToString();
                    if (select.Trim() == "1")
                    {
                        DataRowView drv = dataGridView1.Rows[i].DataBoundItem as DataRowView;
                        SelectRow.Add(drv.Row);//SelectRow缓存选中的数据源行
                    }
                }
                foreach (DataRow dr in SelectRow)
                {
                    _Reasons.Rows.Remove(dr);
                }
    这样就OK啦。
     

    本文出自 “王杰瑞的技术博客” 博客,请务必保留此出处http://wangjierui.blog.51cto.com/186879/56358

  • 相关阅读:
    Calling a parent window function from an iframe
    JSON with Java
    Posting array of JSON objects to MVC3 action method via jQuery ajax
    What's the difference between jquery.js and jquery.min.js?
    jquery loop on Json data using $.each
    jquery ui tabs详解(中文)
    DataTables warning requested unknown parameter
    Datatables 1.10.x在命名上与1.9.x
    jQuery 1.x and 2.x , which is better?
    DataTabless Add rows
  • 原文地址:https://www.cnblogs.com/ewyb/p/2280490.html
Copyright © 2011-2022 走看看