【问题标题】:LightSwitch HTML Client: How to set the value of a computed property based on another computed propertyLightSwitch HTML 客户端:如何根据另一个计算属性设置计算属性的值
【发布时间】:2015-04-22 18:39:48
【问题描述】:

在问我的问题之前,我先做一个简单的例子来说明我的问题。

在我的 LightSwitch HTML 客户端中,我有一个包含一列的表格:“金额”

我创建了一个计算属性“amountPlusTax”,并将其值设置如下,

myapp.BrowseTransactions.amountPlusTax_postRender = function (element, contentItem) {
        contentItem.dataBind("data.amount", function () {
            $(element).text(parseFloat(contentItem.data.amount) * 1.05);
        });
 };

如您所见,amountPlusTax = 金额 * 1.05

我遇到的问题是我想创建另一个计算属性,其值取决于“amountPlusTax”计算属性的值。 比如,amountPlusTaxPlusInterest = amountPlusTax * 1.03

这怎么可能?

这不起作用:

myapp.BrowseTransactions.amountPlusTaxPlusInterest_postRender = function (element, contentItem) {
    $(element).text(parseFloat(contentItem.screen.amountPlusTax) * 1.03);
};

【问题讨论】:

  • 你得到什么答案?它显示的是 null 还是不正确的值?
  • 显示为空(无)。
  • 您是否尝试过使用 setTimeout 函数?它可能没有及时计算,这是我遇到的一个问题,我发现 250 毫秒是一种享受..
  • 我也使用了 setTimeout 但不起作用。在 postRender 期间,计算的属性值可能不可用。最后我决定选择 RIA。

标签: visual-studio-lightswitch computed-field


【解决方案1】:

虽然这不能直接回答您的问题,但您也可以在 DataService 中捕获 Inserting/Inserted/Updating/Updated 事件并更新其中一个或两个字段,而不是使用计算属性。

例如:

partial void SomeTable_Updating(SomeTable entity)
    {
        if (entity.SomeField.IsNullOrWhiteSpace())
            entity.SomeField = Utils.ConvertToValidName(entity.Name);
    }

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    相关资源
    最近更新 更多