我試圖以編程方式從2個不同的數據源構建DataGrid。我有一個List和一個DataGrid。問題不在於我的數據處理,而在於DataGridViewRow對象的值。這裏是我的代碼:構建DataGridViewRow並添加到數據表
protected void buildGrid()
{
dgResults.Columns.Add("sku", "SKU");
dgResults.Columns.Add("itemID", "Item ID");
dgResults.Columns.Add("productName", "Product Name");
dgResults.Columns.Add("eBayQty", "eBay Qty");
dgResults.Columns.Add("stockQty", "Stock Qty");
dgResults.Columns.Add("difference", "Difference");
//Add the eBayItem data to the table
foreach (string[] eBayItem in ebayItems)
{
string SKU = eBayItem[1].ToString();
int eBayQty = Convert.ToInt32(eBayItem[2]);
string ProductName = "";
int stockQty = 0;
int qtyDifference = 0;
DataRow[] rows = dbData.Select("sku ='" + SKU + "'");
if (rows.Length == 1) {
stockQty = Convert.ToInt32(rows[0]["quantity"]);
ProductName = rows[0]["ProductName"].ToString();
}
qtyDifference = stockQty - eBayQty;
DataGridViewRow dgvr = new DataGridViewRow();
dgvr.SetValues(SKU, eBayItem[0].ToString(), ProductName, eBayQty, stockQty, qtyDifference);
if (qtyDifference != 0 || eBayQty > stockQty)
{
dgvr.DefaultCellStyle.BackColor = System.Drawing.Color.Red;
dgvr.DefaultCellStyle.ForeColor = System.Drawing.Color.White;
}
else if (stockQty > eBayQty)
dgvr.DefaultCellStyle.BackColor = System.Drawing.Color.LightGoldenrodYellow;
else
dgvr.DefaultCellStyle.BackColor = System.Drawing.Color.GreenYellow;
dgResults.Rows.Add(dgvr);
}
}
行正在添加到DataGrid並且它們被正確着色,但行內的每個單元格都不包含數據?所有我最終都是幾個空白行,其背景屬性設置。
任何人有任何想法?
在此先感謝。
可能的重複[爲什麼我看不到DataGridViewRow添加到DataGridView?](http://stackoverflow.com/questions/5698356/why-cant-i-see-the-datagridviewrow-added-to- a-datagridview) – 2013-02-22 10:51:15
是的,在那個問題中標記爲解決方案的答案就是我所期待的。我會盡快專門回答這個問題。 – Dan 2013-02-22 11:21:33
當我有機會時,我會添加一種更清潔的方法。 – Derek 2013-02-22 12:05:26