繁体   English   中英

如何在MVC应用程序的网格视图中使用LINQ语句显示总和

[英]How to show sum using LINQ statement in Grid view of the MVC app

我正在开发MVC应用程序。

我陷入了LINQ语法中。

我希望在父级的索引视图中显示列表项的总和。 请检查下面的代码。

在模型中,我有两个类。

   public class StockAdjustment
            {
                public int Id { get; set; }
                public List<StockAdjustmentItem> StockAdjustmentItems { get; set; }     
                 public int SumOfStockAdjustmentItemQuantity
                {
                get 
           { 
                if (this.StockAdjustmentItems != null)
                {
                return this.StockAdjustmentItems.Sum(s=>s.OriginalQuantity);
                     }
             return 0;
            }
        }
            }

            public class StockAdjustmentItem
            {
                public int Id { get; set; }
                public int OriginalQuantity { get; set; }
                public StockAdjustment StockAdjustment { get; set; }
            }



          public StockAdjustment GetAll(int Id)
            {


                oStockAdjustment = GetStockAdjustmentById(Id);

                var prepo = new ProductRepo();

                oStockAdjustment.StockAdjustmentItems = new List<StockAdjustmentItem>();


                StockAdjustmentItem ai1 = new StockAdjustmentItem();
                ai1.Id = 1 ;
                ai1.OriginalQuantity = 250;
               oStockAdjustment.StockAdjustmentItems.Add(ai1);



                StockAdjustmentItem ai2 = new StockAdjustmentItem();
                ai2.Id = 1;
                ai2.OriginalQuantity = 375;
               oStockAdjustment.StockAdjustmentItems.Add(ai2);

                return oStockAdjustment;

            }

现在我有控制器代码

 public ActionResult Index(string searchContent = "")
        {
            AdjustmentRepo oAdjustmentRepo = new AdjustmentRepo();

            var adjustments = from adjustment in oAdjustmentRepo.GetAll() select adjustment;


            ViewBag.StockAdjustmentList = adjustments;
            return View(adjustments);
        }

这个工作很好...

现在,问题来了,当我尝试在List中显示StockAdjustment时。

我必须在网格的StockAdjustment项的前面显示StockAdjustmentItems的OriginalQuantites的总和。

在上面的Exmaple中,我想在网格的行中显示650(250 + 375)。

  @model IEnumerable<StockWatchServices.DomainClass.StockAdjustment>

      @Html.Grid(Model).Columns(columns => 
        {            
     columns.Add(c=>c.StockAdjustmentItems.Sum( OriginalQuantity ???? Im stuck here... ) 
        }

我应该在这里写些什么?

我可以看到这样的... 在此处输入图片说明

StockAdjustment类上创建仅吸气剂属性

public class StockAdjustment
{
 public int Id { get; set; }
 public List<StockAdjustmentItem> StockAdjustmentItems { get; set; } 
 public int SumOfStockAdjustmentItemQuantity
 {
  get 
  { 
   if (this.StockAdjustmentItems != null)
   {
    return this.StockAdjustmentItems.Sum(s=>s.OriginalQuantity);
   }
   return 0;
 }
}

}

然后在您的Razor视图中:

@Html.Grid(Model).Columns(columns => 
{            
 columns.Add(c => c.SumOfStockAdjustmentItemQuantity) 
}

您可以尝试以下代码:

@Html.Grid(Model).Columns(columns =>
{
    columns.Add(c => c.StockAdjustmentItems.Where(quantity => quantity.OriginalQuantity != null).Sum(sum => sum.OriginalQuantity).ToString());
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM