2012-07-27 184 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. 
        } 
       } 
} 

我可以使用上面的代碼動態地創建一行。但我沒有得到如何將數據插入已經創建的行。下圖顯示了上述代碼的輸出。 Data grid created using above code動態填充數據網格

我想添加鏈接後單元格旁邊的數據。當我試圖使用相同的代碼,新的行正在創建,但我想插入數據到已經創建的行。

+0

您是否想要以編程方式更新行或在運行時?編輯:只讀了我錯過的位。現在發佈答案 – 2012-07-27 09:51:52

+0

在您添加的對象中,填充您不希望添加空值的相關單元。這應該做到這一點。 – MoonKnight 2012-07-27 09:55:39

回答

2

您可以更新現有的行,像這樣:

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

另外,您可以輸入該行中的信息之前,將其添加到數據源。

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

你好Shane.C,當我試着你的答案它給錯誤 - 不能用[]索引到'system.Windows.Forms.DataGridViewRow'類型的表達式。 – Maddy 2012-07-27 10:01:08

+0

更新了答案,我的錯誤。您需要對DataTable(DataGrid的數據源)進行修改。 – 2012-07-27 10:05:31

+0

'不能將類型'字符串'隱式轉換爲'System.Windows.Forms.DataGridViewLinkColumn'。我在使用更新的代碼後遇到的錯誤。告訴我我錯過了什麼。 – Maddy 2012-07-27 10:10:52