2012-02-15 3 views
0

Je souhaite ajouter un CustomDataGridViewRow enregistré dans un DataGridView qui est lié. Comme suit:Ajouter une ligne à datagridview lié

CustomDataGridViewRow rowTemplate = new CustomDataGridViewRow(); 
dataGridView1.RowTemplate = rowTemplate; 

Datenbank.cmd = 
    new SqlCommand("[Terminauswertung_Bericht_Gesamt]", Datenbank.connection); 
Datenbank.cmd.CommandType = CommandType.StoredProcedure; 
Datenbank.cmd.Parameters.AddWithValue("@berichtsnr", 1); 

SqlDataAdapter adapter = new SqlDataAdapter(Datenbank.cmd); 
dataSet1.Tables.Clear(); 
adapter.Fill(dataSet1, "Table"); 
bs = new BindingSource(); 
bs.DataSource = dataSet1.Tables["Table"]; 
dataGridView1.DataSource = bs; 

Nous avons pensé qu'il va dans ce sens:

dataSet1.Tables[0].Rows.Add(Cache.getRow(1)); 

public class cache 
{ 
    Dictionary<int, CustomDataGridViewRow> _cache = 
     new Dictionary<int, CustomDataGridViewRow>(); 

    public CustomDataGridViewRow getRow(int index) 
    { 
     foreach (KeyValuePair<int, CustomDataGridViewRow> dic in _cache) 
     { 
      if (dic.Key == index) 
       return (dic.Value); 
     } 
     return (new CustomDataGridViewRow());    
    } 
} 

Mais il me montre que DataGridViewRow {Index = 1} dans la première cellule.

+1

Pourriez-vous poster votre solution en réponse à votre question? (et acceptez-le) C'est parfaitement OK pour faire ça. –

+0

@GertArnold ok, je le fais à l'avenir, je ne savais pas que c'est ok à cause de cela: "Les utilisateurs de moins de 100 réputation ne peuvent pas répondre à leur propre question pendant 8 heures après avoir demandé. Dans ce cas, veuillez utiliser des commentaires ou modifier votre question à la place. " le faire dans 3 heures –

Répondre

0

a résolu le problème

DataRow newRow =test.Tables[0].NewRow(); 


newRow.ItemArray = Cache.getRowValues(child); 
test.Tables[0].Rows.InsertAt(newRow, c.Index+1); 

public string[] getRowValues(int index) 
     { 
      List<string> temp = new List<string>(); 
      foreach (KeyValuePair<int, CustomDataGridViewRow> dic in _cache) 
      { 
       if (dic.Key == index) 
       { 
        foreach (DataGridViewCell cell in dic.Value.Cells) 
         temp.Add(cell.Value.ToString()); 
       } 
      } 
      string[] result = temp.ToArray(); 

      return (result); 
     } 
Questions connexes