Data binding Lightswitch HTML数据绑定到详细信息集合

Data binding Lightswitch HTML数据绑定到详细信息集合,data-binding,visual-studio-lightswitch,Data Binding,Visual Studio Lightswitch,我有一个简单的主/明细关系,其中一个订单可以有多个收入分配。订单有一个包含这些内容的集合 我希望对收入分配对象中的一个属性求和,并确保它与我的订单总数相加。但是,如果我在allocations集合的count属性上进行数据绑定,则在您第一次添加空对象时,而不是在填充该对象时,会调用该属性。因此,在创建“添加分配”屏幕并调用数据绑定函数时,会添加一个空分配。当然,这意味着当单击“添加分配”屏幕上的保存按钮时,不会再次调用数据绑定功能 有人有什么想法吗?我基本上希望在“添加屏幕”中单击save按钮时

我有一个简单的主/明细关系,其中一个订单可以有多个收入分配。订单有一个包含这些内容的集合

我希望对收入分配对象中的一个属性求和,并确保它与我的订单总数相加。但是,如果我在allocations集合的count属性上进行数据绑定,则在您第一次添加空对象时,而不是在填充该对象时,会调用该属性。因此,在创建“添加分配”屏幕并调用数据绑定函数时,会添加一个空分配。当然,这意味着当单击“添加分配”屏幕上的保存按钮时,不会再次调用数据绑定功能

有人有什么想法吗?我基本上希望在“添加屏幕”中单击save按钮时调用我的databind函数,而不是在此之前


这是HTML客户端—不是Silverlight

,我很确定解决方案是使用OData查询在“保存”按钮的数据绑定功能中获取聚合数据—或者使用单独的按钮(例如“理货订单总计”)。你到底是怎么做到的?我现在回答有点太难了,但是从一个新的按钮TallyOrderTotals和一个新的数据字段开始。编辑TallyOrderTotals的post_render事件,并在javascript中查找分配,在javascript中数据绑定新数据字段的值

在某些地方,您需要一段类似以下内容的代码:

myapp.activeDataWorkSpace.<datasource>.RevenueAllocations
    .filter("OrderID eq " + msls._toODataString(<orderID>, ":String"))
    .execute()
    .then(function (result) {
        // assign the result somewhere
    }
myapp.activeDataWorkSpace..RevenueAllocations
.filter(“OrderID eq”+msls.\u to数据字符串(,“:字符串”))
.execute()
.然后(函数(结果){
//把结果分配到某个地方
}
我并不是说你可以剪切和粘贴这些东西,但一定要看一下,看看在事件上下文中查询数据能做些什么

一个快速点-如果您只需要将该总数计算为验证步骤,请考虑在服务器端的SaveExcutug()事件中执行此操作。这将允许您将异常备份到树上,以使MSLS.JS脚本在客户端上呈现。


希望能有所帮助。

非常感谢Ozziemedes-会让你知道我的进展如何!