2016-04-22 9 views
0

私はdatagridviewカラムのセル値をクリアするコードを以下のユーザに持っています。vb.netでdatagridviewカラムのすべての値を一度クリアします

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

行を反復せずにすべての値を消去するショートカットがありますか?

これを実現するにはlinqを使用できますか?事前に

おかげ

+2

Linqは引き続き行を繰り返します –

答えて

0

、あなたは*削除することができ、列を再度追加します。

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) 

*免責事項:セット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例これは動作しますが、私の場合育っている私は確かにいくつかのより低いレベルで反復が起こっているとは言えません。結局のところ、列を再追加すると、各行エントリの一部になり、その結果、フードの中を通って反復された可能性があります。

0

使用この:

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

が、それは同じことだ、LINQは、反復

0

一つのアプローチは、jQueryのセレクタを使用することです行います。もちろん、行を繰り返すことはできますが、クライアント側とシーンの後ろで行われます。 DataSourceセット付きまたはなし

$('#' + gridViewCtlId + ' td:nth-child(' + INDEX_COLUMN_TO_CLEAR + ')').html(''); 
関連する問題