Hier komt het probleem.
Ik wil alle rijen uit datagridview verwijderen.
Zo voeg ik rijen toe:
private void ReadCompleteCallback(object clientHandle, Opc.Da.ItemValueResult[] results)
{
foreach (Opc.Da.ItemValueResult readResult in results)
{
dataGridView1.Invoke(new MethodInvoker(() => dataGridView1.Rows.Add(readResult.ItemName, readResult.Quality, readResult.Timestamp,readResult.Value)));
}
}
En zo wis ik gridview:
private void treeView1_SelectionsChanged(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
items = new Opc.Da.Item[treeView1.SelectedNodes.Count];
foreach (TreeNode x in treeView1.SelectedNodes) {
items[treeView1.SelectedNodes.IndexOf(x)] = new Opc.Da.Item();
items[treeView1.SelectedNodes.IndexOf(x)].ItemName = x.Text;
}
group.AddItems(items);
group.Read(group.Items, 123, new Opc.Da.ReadCompleteEventHandler(ReadCompleteCallback), out req);
}
in debug zie ik dat dataGridVIew1.Rows.Count=0, maar op formulier wordt het raster niet duidelijk. wat een punt?
bij elke selectie in de boomstructuur wil ik nieuwe rijen in de tabel zien.
Antwoord 1, autoriteit 100%
Ik wed dat je alleen de datagrid hoeft te vernieuwen. Probeer dit:
dataGridView1.Rows.Clear();
dataGridView1.Refresh();
Als dit werkt… wil je misschien dit deel van je aanvraag heroverwegen.
Antwoord 2, autoriteit 30%
Als ik het me goed herinner, heb ik de eigenschap DataSource op null gezet om de DataGridView te wissen:
datagridview.DataSource = null;
Antwoord 3, autoriteit 12%
Om de DataGridView
te wissen, schrijft u de volgende code:
dataGridView1.DataSource=null;
Antwoord 4, autoriteit 7%
In principe is onderstaande coderegel alleen nuttig in scenario’s voor gegevensbinding
datagridview.DataSource = null;
anders wordt hieronder gebruikt wanneer geen gegevensbinding en datagridview handmatig wordt ingevuld
dataGridView1.Rows.Clear();
dataGridView1.Refresh();
Controleer dus eerst wat u aan het doen bent.
Antwoord 5, autoriteit 4%
Als u een dataGridView wilt wissen die niet is gebonden aan DataSource maar handmatig is geladen, kunt u deze eenvoudige code gebruiken:
datagridview.Rows.Clear();
datagridview.Columns.Clear();
Antwoord 6, autoriteit 3%
het enige wat u hoeft te doen is uw gegevenstabel wissen voordat u deze vult… en deze vervolgens instellen als de gegevensbron van uw dgv
Antwoord 7, autoriteit 3%
Ik heb dit stukje code, ik hoop dat het je kan helpen.
int numRows = dgbDatos.Rows.Count;
for (int i = 0; i < numRows; i++)
{
try
{
int max = dgbDatos.Rows.Count - 1;
dgbDatos.Rows.Remove(dgbDatos.Rows[max]);
}
catch (Exception exe)
{
MessageBox.Show("You can´t delete A row " + exe, "WTF",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Antwoord 8, autoriteit 2%
Als u probeert uw Data Grid View opnieuw te binden, codeer dan gewoon dit:
DataGridView1.DataSource = DataSet.Tables["TableName"];
OF
DataGridView.DataSource = DataTable;
Als u probeert uw gegevensrasterweergave te wissen, codeer dan gewoon dit:
DataGridView.DataSource = null;
DataGridView.Rows.Clear();
DataGridView.Refresh();
en voeg een methode of gebeurtenis toe om Data Grid View Again te binden onder deze regel code….
Antwoord 9
probeer RowCount in te stellen op 0 (allowuserstorows moeten false zijn), samen met clear aanroepen
Antwoord 10
Dit is een manier om het te doen:
datagridview.DataSource = null;
datagridview.Refresh();
Ik hoop dat het voor jou werkt, want het werkt voor mij.
Antwoord 11
probeer:
datagrid.DataSource = null;
datagrid.DataBind();
In principe moet u de gegevensbron uw binding aan het raster wissen.
Antwoord 12
dataGridView1.DataSource=null;
Antwoord 13
Stel de eigenschap datasource in op een lege tekenreeks en roep vervolgens de Clear-methode aan.
Antwoord 14
Ik hou er niet van om persoonlijk met de DataSource te knoeien, dus na het probleem met een IT-vriend te hebben besproken, kon ik deze manier ontdekken die eenvoudig is en geen invloed heeft op de DataSource. Ik hoop dat dit helpt!
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
cell.Value = "";
}
}
Antwoord 15
Probeer deze methode
dataGridView1.DataSource = dt;
dt.Rows.Clear();
Antwoord 16
Als uw DataGridView
geen DataSource
heeft, komt de oplossing niet door deze te manipuleren.
Je hebt altijd een empty
rij als je de eigenschap AllowUserToAddRows
hebt ingesteld op true
.
Zet AllowUserToAddRows = false
als je hier geen toestemming voor nodig hebt.
Antwoord 17
Ik weet dat het gek klinkt, maar ik heb dit probleem opgelost door
de eigenschap datagrid.visible wijzigen in false en vervolgens in true.
Het veroorzaakt een heel klein knipperen, maar het werkt voor mij (althans voor nu).
Antwoord 18
Probeer deze code
private void button_Click(object sender, EventArgs e) {
if (this.dgInv.DataSource != null) {
this.dgInv.DataSource = null;
} else {
this.dgInv.Rows.Clear();
}
}
Antwoord 19
Probeer dit
DataGridView1.DataSource=ds;
ds.Clear();