在vb.net中清除datagridview列的所有值

时间:2016-04-22 15:14:24

标签: vb.net linq datagridview

我有以下代码的用户清除datagridview列的单元格值。

For Each item As DataGridViewRow In dgvGeometricImport.Rows
 item.Cells("Status1").Value = String.Empty
Next

我们是否有任何捷径可以清除所有值而无需迭代行?

我们可以使用linq来实现这个目标吗?

提前致谢

3 个答案:

答案 0 :(得分:0)

使用它:

dataGridView.Rows.Cast(Of DataGridViewRow).ToList.ForEach(Sub(r) r.Cells("ColumnName").Value = String.Empty)

但是同样的事情,linq将进行迭代

答案 1 :(得分:0)

一种方法是使用jQuery选择器。它当然会迭代遍历行,但它将在客户端和幕后完成。

$('#' + gridViewCtlId + ' td:nth-child(' + INDEX_COLUMN_TO_CLEAR + ')').html('');

答案 2 :(得分:0)

无论是否设置DataSource,您都可以*删除并重新添加列。

VB示例 DataSource设置:

Dim index As Integer = Me.dataGridView1.Columns("Status1").DisplayIndex

Dim table As DataTable = DirectCast(Me.dataGridView1.DataSource, DataTable)
Dim column As DataColumn = table.Columns("Status1")
table.Columns.Remove(column)
table.Columns.Add(column)

Me.dataGridView1.Columns("Status1").DisplayIndex = index

VB示例没有 DataSource设置:

Dim index As Integer = Me.dataGridView1.Columns("Status1").Index
Dim column As DataGridViewColumn = Me.dataGridView1.Columns("Status1")
Me.dataGridView1.Columns.Remove(column)
Me.dataGridView1.Columns.Insert(index, column)

*免责声明:这会有效,但如果我是诚实的,我无法肯定地说某些地方没有发生迭代水平。毕竟,当您重新添加列时,它将成为每个行条目的一部分,因此可以通过引擎盖进行迭代。