2013-05-14 33 views
5

Non so qual è la sintassi per lo svuotamento di un datagridview. Per favore aiutami qui è il mio codice.Come svuotare un datagridview?

if (cboProduct.SelectedIndex != -1) 
    load_variant(); 
else 
    //empty the datagridview 
    cboProduct.SelectedIndex = -1; 

risposta

19

set datasource nullo

dataGridView1.DataSource = null; 

Oppure

dataGridView1.Rows.Clear() 

O

while (dataGridView1.Rows.Count > 0) 
{ 
    dataGridView1.Rows.RemoveAt(0); 
} 
+1

+1 per 'Rows.Clear()' – Habib

+1

C'è un errore, 'non può cancellare questo list' – Harvey

+0

@Harvey ha provate con RemoveAt? – Damith

5

sintassi per lo svuotamento di un datagridview

Basta assegnare null al numero DataSource property.

yourGridView.DataSource = null; 
+0

Grazie. Ma c'è un altro modo? – Harvey

+0

@Harvey forse puoi provare 'yourGridView.Rows.Clear()' poi – V4Vendetta

+0

@ V4Vendetta L'ho provato ma c'è un'eccezione 'Impossibile cancellare questa lista. ' – Harvey

2

Basta impostare DataGridView.DataSource proprietà null

Ottiene o imposta l'origine dati che DataGridView visualizza i dati per.

DataGridView1.DataSource = null; 

Come alternativa (non è esattamente quello .DataSource = null fa)

DataTable dt = (DataTable)DataGridView1.DataSource; 
if(dt != null) 
    dt.Clear(); 
+0

C'è un'eccezione. – Harvey

+0

@Harvey Quale eccezione? Dove? –

+0

@ SonerGönül immagino che non sia necessario un 'DataTable' probabilmente un'eccezione cast di OP sta parlando di – V4Vendetta

1

È possibile impostare il DataSource su null:

dataGridView.DataSource = null; 
1

Approccio 1:

datagridview1.DataSourse=null; 

Approach2:

DataView DV = (DataView)this.SqlDataSource1.Select(DataSourceSelectArguments.Empty); 
DV.Table.Clear(); 

Approccio 3:

datagridview1.DataSource = "" 

Approach 4:

datagridview1.Dispose();//Clears gridview with all its properties 

Appr oach 5:

utilizzando JavaScript:

document.getElementById("datagridview1").outerHTML = ""; 

Speranza suo aiuto.

+0

Non è un' Gridview' che OP ha chiesto ..! –

+0

verrà applicato anche a datagridview – Freelancer

-1

Prova questo:

int nn = yourgridview.Rows.Count; 
for (int i=nn; i>1; i--) 
{ 
    { 
     yourgridview.Rows.RemoveAt(i-2); 
    } 
} 
0

Impostazione l'origine dati su null anche resettare tutta la formattazione del DataGridView. È possibile mantenere la formattazione creando uno DataTable vuoto e impostandolo come sorgente.

Ad esempio:

// Create an empty datatable 
DataTable empty = new DataTable(); 
empty.Columns.Add("Name", typeof(string)); 
empty.Columns.Add("Color", typeof(myEnum)); 
empty.Columns.Add("Count", typeof(int)); 
... 

// Clear datagridview 
dgv.DataSource = empty; 
0

if (dgView.DataSource == null) return; ((DataTable)dgView.DataSource).Rows.Clear(); ((DataTable)dgView.DataSource).Columns.Clear();

Ho usato questo per pulire vista datagrid su mia domanda finestra.

dgView.DataSource = null non funziona per me