在gridview中对行求和,并在选择时更改标签颜色

时间:2018-06-26 07:53:31

标签: c# asp.net gridview label

我有一个与此相似的网格视图

function a(){
  try{
   var img1 = "=="";  <#-- it occurs error -->
  }catch (e) {
    console.log("image error:" + e.message);
  }
}

注意-每个列中的目标保持不变。

ETC ETC耗时8小时...整个网格的数字不同...

我有一个标签,可以对所有实际值求和并将其显示在标签控件中,因为它可以对所有实际值求和并得到总计,所以效果很好。

我需要做的是每个小时和每个变量的总和,并说如果实际值大于目标值,则标签为绿色;如果小于实际值,则标签为红色。。但是我不确定如何实现此目标,这是到目前为止我的代码,但是它不起作用...也许我使事情变得过于复杂了?谁能帮忙...

  Hour - ActualA - TargetA - ActualB - TargetB - ActualC - TargetC - ActualAA 
    1        7         10        9         12        0         17         21

总标签仅需对actaul列求和,即

 public int CalculatePackingTotal(DataTable dt)
    {
        using (DataManager dmgr = new DataManager())
        {
            int sum = 0;
            int target = 0;

            foreach (DataRow row in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    if (dc.ColumnName.Contains("ActualA"))
                    {
                        sum += (int) row[dc.ColumnName]; //This adds up all the Actual rows in the grid
                    }
                    if (dc.ColumnName.Contains("TargetA"))
                    {
                        target += (int)row[dc.ColumnName]; //This adds up all the target rows in the grid
                    }

                    if (dc.ColumnName.Contains("ActualB"))
                    {
                        sum += (int) row[dc.ColumnName];
                    }

                    if (dc.ColumnName.Contains("TargetB"))
                    {
                        target += (int) row[dc.ColumnName];
                    }

                    if (dc.ColumnName.Contains("ActualC"))
                    {
                        sum += (int) row[dc.ColumnName];
                    }

                    if (dc.ColumnName.Contains("TargetC"))
                    {
                        target += (int) row[dc.ColumnName];
                    }

                    if (dc.ColumnName.Contains("ActualAA"))
                    {
                        sum += (int) row[dc.ColumnName];
                    }

                    if (dc.ColumnName.Contains("TargetAA"))
                    {
                        target += (int) row[dc.ColumnName];
                    }

                    Color foreColorGreen = Color.Green;
                    Color forecolorRed = Color.Red;
                    if  (sum < target)
                    {
                        sum.Equals(forecolorRed);
                    }
                    else
                    {
                        sum.Equals(foreColorGreen);
                    }

                }
            }
            return sum;
            }
        }

但是我添加了其余部分,并且它不会改变颜色,并且将所有目标相加,因此即使有效,实际也永远不会以绿色显示...

0 个答案:

没有答案