2017-02-27 6 views
-2

Mein Problem ist, ich habe eine Schaltfläche zum Löschen in der Rasteransicht. Wenn ich auf Löschen klicke, muss diese bestimmte Zeile gelöscht werden und einige Spalten dieser Zeile müssen aktualisiert werden, die auf derselben Schaltfläche klicken.Rasteransicht Löschen Aktualisierung mit einem Klick

Beispiel, wenn ich delete klicken, dass Zeile, die Zeile gelöscht werden muss..that Zeile hat Status-Spalte, die vor dem Löschen aktiv ist, nach dem Klicken auf löschen, dass Spalte Status sollte gelöscht werden, und Zeile sollte gelöscht werden und eine weitere Spalte Diese ID sollte sich in null ändern.

sehr verwirrt, wie beide Operationen auf einzelnen Klick tun

+1

, wenn Sie die Zeile löschen, warum dann die Spalten der gleichen Zeile you'veto aktualisieren ??? Deine Frage ist so verwirrend. Lassen Sie uns wissen, was Sie versucht haben. –

+0

Suchen Sie etwas wie "Soft Delete", in dem, wenn Sie auf "Löschen" klicken, der Status der Zeile zu etwas wie "Inaktiv" und der Zeile aktualisiert wird; obwohl noch in der Datenbank vorhanden, wird nicht im Raster angezeigt ?? – A3006

+0

Zeilenspalte wird in inaktiv geändert. und diese Zeile wird in Datenbank und Raster auch aktualisiert – Jones

Antwort

0

Sie sollten alle Operationen wie Update tun/Löschen auf Datasource zu Datagrid zugewiesen. Für Ihre Bequemlichkeit

private void PopulateThirdCombo() 
{ 
    try 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("Product ID"); 
     dt.Columns.Add("Product Name"); 
     dt.Columns.Add("Product Price"); 
     dt.Columns.Add(); 
     dataGridView1.ColumnCount = 3; 
     dataGridView1.Columns[0].Name = "Product ID"; 
     dataGridView1.Columns[1].Name = "Product Name"; 
     dataGridView1.Columns[2].Name = "Product Price"; 
     string[] row = new string[] { "1", "Product 1", "1000" }; 
     dataGridView1.Rows.Add(row); 
     row = new string[] { "2", "Product 2", "2000" }; 
     dataGridView1.Rows.Add(row); 
     row = new string[] { "3", "Product 3", "3000" }; 
     dataGridView1.Rows.Add(row); 
     row = new string[] { "4", "Product 4", "4000" }; 
     dataGridView1.Rows.Add(row); 

     DataGridViewButtonColumn btn = new DataGridViewButtonColumn(); 
     dataGridView1.Columns.Add(btn); 
     btn.HeaderText = "Action"; 
     btn.Text = "Delete"; 
     btn.Name = "btn"; 
     btn.UseColumnTextForButtonValue = true;  
    } 
    catch (Exception) 
    { 

    } 
} 


private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    try 
    { 
     //this will be index of your delete button 
     if (e.ColumnIndex == 3) 
     { 
      this.dataGridView1.Rows.RemoveAt(e.RowIndex); 
     } 
    } 
    catch (Exception) 
    { 

    } 
} 

HINWEIS: Anruf PopulateThirdCombo() erste

Verwandte Themen