2012-07-27 2 views
2
while (rawCode.IndexOf("<a href") != -1) 
{ 
       string[] parts = link.Split(new string[] { "./" }, StringSplitOptions.None); 
       string column = string.Format("Column{0}",1); 
       dataGridView1.Columns.Add("Link","Links"); 
       for (int i = 0; i < parts.Length; i++) 
       { 
        if (parts[i] != "") 
        { 

         dataGridView1.Rows.Add((new Object[] { i, parts[i]})); 

         dataGridView1.Columns.Add("Link", "Name"); 
         dataGridView1.Rows.Add((new Object[] { i, parts[i]})); 
         //Here i need to insert data into already existing row. 
        } 
       } 
} 

Je peux créer une ligne dynamiquement en utilisant le code ci-dessus. Mais je ne comprends pas comment insérer des données dans les lignes déjà créées. L'image ci-dessous montre la sortie du code ci-dessus. Data grid created using above codeRemplissage dynamique de la grille de données

Je souhaite ajouter les données à côté des cellules après le lien. Quand j'ai essayé d'utiliser le même code, de nouvelles lignes sont créées, mais je veux insérer des données dans des lignes déjà créées.

+0

Voulez-vous mettre à jour les lignes aussi par programme, ou au moment de l'exécution? edit: il suffit de lire le bit que j'ai raté. poster une réponse maintenant –

+0

Dans l'objet que vous ajoutez, padd la cellule concernée que vous ne voulez pas ajouter avec des valeurs nulles. Ça devrait le faire. – MoonKnight

Répondre

2

vous pouvez mettre à jour les lignes existantes comme ceci:

dataTable.Rows[i]["columnNameHere"] = valueYouWantToUse; 

vous pourriez aussi saisir l'information dans la ligne avant de l'ajouter à la source de données.

DataRow row = dataTable.NewRow(); 
row["columnName"] = valueYouWantToUse; 
//any other information can be put here too, for each column in the row. 
dataTable.Rows.Add(row); 

if (parts[i] != "") 
       { 

        dataGridView1.Rows.Add((new Object[] { i, parts[i]})); 

        dataGridView1.Columns.Add("Link", "Name"); 
        DataRow row = dataTable.NewRow(); 
        row["Link"] = i.ToString(); 
        row["Name"] = parts[i].ToString(); 

        //here add all your column values for that row in the same manner, then, 
        dataTable.Rows.Add(row); 
       } 
+0

Bonjour Shane.C, Quand j'ai essayé votre réponse son erreur donnant comme - ne peut pas appliquer l'indexation avec [] à une expression de type 'system.Windows.Forms.DataGridViewRow'. – Maddy

+0

mise à jour réponse, mon erreur. vous devez faire des ammends au DataTable, qui est la source de données de DataGrid. –

+0

'Impossible de convertir le type 'chaîne' implicitement en 'System.Windows.Forms.DataGridViewLinkColumn'. L'erreur que je reçois après l'utilisation de votre code mis à jour. Dites-moi ce que je manque. – Maddy

Questions connexes