读书人

dataGridView多选剔除

发布时间: 2013-02-25 10:23:36 作者: rapoo

dataGridView多选删除
错误: 在dataGridView 中删除一行数据 但它提示:除非 DataGridView 被数据绑定到支持更改通知并允许删除的 IBindingList,否则不能以编程方式移除行

代码:

 for (int i = 0; i < this.dataGridView1.RowCount; i++)
{
if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value != null)
{
if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value.ToString().ToLower() == "true")
{
this.dataGridView1.Rows.RemoveAt(i);
}
}
}


这句报的错 this.dataGridView1.Rows.RemoveAt(i);

[解决办法]
遍历删除一定要从后往前删,如果从前往后删,会改变Count和Index导致i大于Count出异常

for (int i = this.dataGridView1.RowCount-1; i >=0; i--)
{
if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value != null)
{
if (this.dataGridView1.Rows[i].Cells["xuanzhe"].Value.ToString().ToLower() == "true")
{
this.dataGridView1.Rows.RemoveAt(i);
}
}
}
[解决办法]
你数据绑定的代码贴出来看看
[解决办法]
在数据源中删除数据,刷新显示控件。
http://www.cnblogs.com/winzheng/archive/2009/05/25/1488960.html参考
[解决办法]
从list1里把数据删除。在重新绑定
------解决方案--------------------


我建议是根据用户选择的行数,来确定dataSource中的相应记录,并删除掉,然后重新绑定数据源到删除之后的dataSource,就可以饿了。
[解决办法]
建议删除数据源,把要删除的数据,从绑定的数据源里排除,然后重新绑定给dataGridView
[解决办法]
不行你可以先把list里面的数据转存到datatable里面。。再将gridview绑定到datatable就可以做删除了。
[解决办法]
从前往后删除
if (表控件.RowCount > 2)
for (int 数 = 2; 数 != 表控件.RowCount; )
表控件.Rows.RemoveAt(0);
看情况设计,只要索引数值没错,没不能从控件删除的,这个写法删除一行后行数值会变化,因此后面不用写.
[解决办法]
好像写错了:.Rows[i].Cells["AAAAA"].ToString().IndexOf("");
[解决办法]

引用:
遍历删除一定要从后往前删,如果从前往后删,会改变Count和Index导致i大于Count出异常

for (int i = this.dataGridView1.RowCount-1; i >=0; i--)
{
if (this.dataGridView1.Rows[i].Cells["……



+1
遍历删除时要特别当心

读书人网 >C#

热点推荐