2 つの異なるデータ ソースから DataGrid をプログラムで構築しようとしています。List と DataGrid があります。問題はデータ処理にあるのではなく、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 に追加され、適切に色付けされていますが、行内の各セルにはデータが含まれていませんか? 最終的には、背景のプロパティが設定されたいくつかの空白行だけになります。
アイデアはありますか?
前もって感謝します。