我试图以编程方式从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