C# 使用DevExtreme、SummaryType.Custom获取错误

C# 使用DevExtreme、SummaryType.Custom获取错误,c#,devextreme,C#,Devextreme,我试着在下一个例子中这样做: 我已尝试为我的网格创建自定义摘要 例如,在下一张图片中,我有红色列和蓝色列,我想将它们相加为(伪代码) 我希望得到347.74-218.46+272.7=401.98,而不是838.9 我还创建了下一个方法(我知道它还没有完成,但我甚至没有使用这个方法,我之前就遇到了错误): 这是我的总结: .Summary(s => s.GroupItems(items => items.AddFor(t=>t.CdAmt)

我试着在下一个例子中这样做:

我已尝试为我的网格创建自定义摘要

例如,在下一张图片中,我有红色列和蓝色列,我想将它们相加为(伪代码)

我希望得到347.74-218.46+272.7=401.98,而不是838.9

我还创建了下一个方法(我知道它还没有完成,但我甚至没有使用这个方法,我之前就遇到了错误):

这是我的总结:

   .Summary(s => s.GroupItems(items => items.AddFor(t=>t.CdAmt)
                    .Name("SelectedRowsSummary")
                    .ShowInColumn("CdAmt")
                    .DisplayFormat("Sum: {0}")
                    .ValueFormat(Format.Decimal)
                    .SummaryType(SummaryType.Custom)
             ).CalculateCustomSummary("CalculateCustomSummary"))
这是我在服务器端的加载操作(.LoadAction(“{FuncName}”))


尝试此解决方案,不要返回JSON,只需遵循.Net Core的WebApi指南:

[HttpGet]
public async Task<object> {FuncName}(int Id, DataSourceLoadOptions loadOptions ... more params)
{
    try
    {
        return DataSourceLoader.Load(_hService.GetAllHZ(), loadOptions);
    }
    catch (Exception ex)
    {
        _log.LogError($"Method Name: {System.Reflection.MethodBase.GetCurrentMethod().Name}, " +
           $"Exception: {ex}");
        return StatusCode(500);
    }
}
[HttpGet]
公共异步任务{FuncName}(int-Id,DataSourceLoadOptions loadOptions…更多参数)
{
尝试
{
返回DataSourceLoader.Load(_hService.GetAllHZ(),loadOptions);
}
捕获(例外情况除外)
{
_log.LogError($“方法名称:{System.Reflection.MethodBase.GetCurrentMethod().Name},”+
$“例外:{ex}”);
返回状态码(500);
}
}
还要确保
remoteOperations.summary
remoteOperations.groupPaging
remoteOperations
属性未设置或设置为false


请参阅:

不要使用
iQuery
使用
列表
并告诉我result@FilipeNóbrega将结果添加到我问题的末尾我将在下面发布一些代码告诉我它是否有效结果是相同的:(我做了您所说的更改,还添加了.RemoteOperations(r=>r.Summary(true)).RemoteOperations(r=>r.GroupPaging(true))。客户端上的RemoteOperations(true)您必须将它们设置为false它在没有自定义摘要的情况下工作吗?是的。别介意,我只是从X创建了一个类和继承,并添加属性,使自定义if(..)返回一个else返回-a,并在此基础上进行正常求和谢谢您的帮助
   .Summary(s => s.GroupItems(items => items.AddFor(t=>t.CdAmt)
                    .Name("SelectedRowsSummary")
                    .ShowInColumn("CdAmt")
                    .DisplayFormat("Sum: {0}")
                    .ValueFormat(Format.Decimal)
                    .SummaryType(SummaryType.Custom)
             ).CalculateCustomSummary("CalculateCustomSummary"))
[HttpGet]
public async Task<IActionResult> {FuncName}(int Id, DataSourceLoadOptions loadOptions ... more params)
{
    try
    {
        IQueryable<X> hzInfos;
        hzInfos = _hService.GetAllHZ();  
        return Json(DataSourceLoader.Load(hzInfos, loadOptions));
    }
    catch (Exception ex)
    {
        _log.LogError($"Method Name: {System.Reflection.MethodBase.GetCurrentMethod().Name}, " +
           $"Exception: {ex}");
        return StatusCode(500);
    }
}
    [HttpGet]
    public async Task<IActionResult> {FuncName}(int Id, DataSourceLoadOptions loadOptions ... more params)
    {
        try
        {
            List<X> hzInfos;
            hzInfos = _hService.GetAllHZ().ToList();  
            return Json(DataSourceLoader.Load(hzInfos, loadOptions));
        }
        catch (Exception ex)
        {
            _log.LogError($"Method Name: {System.Reflection.MethodBase.GetCurrentMethod().Name}, " +
               $"Exception: {ex}");
            return StatusCode(500);
        }
    }
    
    
    
    
    
    
    
       at DevExtreme.AspNet.Data.Aggregation.AggregateCalculator`1.CreateAggregator(SummaryInfo summaryInfo)
       at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
       at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
       at DevExtreme.AspNet.Data.Aggregation.AggregateCalculator`1.ProcessGroup(Group group)
       at DevExtreme.AspNet.Data.Aggregation.AggregateCalculator`1.ProcessItem(Object item)
       at DevExtreme.AspNet.Data.Aggregation.AggregateCalculator`1.Run()
       at DevExtreme.AspNet.Data.DataSourceLoaderImpl`1.<ContinueWithAggregationAsync>d__9`1.MoveNext()
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at DevExtreme.AspNet.Data.DataSourceLoaderImpl`1.<ContinueWithGroupingAsync>d__8`1.MoveNext()
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at DevExtreme.AspNet.Data.DataSourceLoaderImpl`1.<LoadAsync>d__5.MoveNext()
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at DevExtreme.AspNet.Data.DataSourceLoader.Load[T](IQueryable`1 source, DataSourceLoadOptionsBase options)
       at CardTranzactions.Controllers.HovaZehutSTHZController.<GetHZ>d__11.MoveNext() in {the path}
[HttpGet]
public async Task<object> {FuncName}(int Id, DataSourceLoadOptions loadOptions ... more params)
{
    try
    {
        return DataSourceLoader.Load(_hService.GetAllHZ(), loadOptions);
    }
    catch (Exception ex)
    {
        _log.LogError($"Method Name: {System.Reflection.MethodBase.GetCurrentMethod().Name}, " +
           $"Exception: {ex}");
        return StatusCode(500);
    }
}