0

我正在使用 Visual Studio 2013 LightSwitch 来尝试构建 HTML 应用程序。在尝试了几个小时以在 HTML 客户端中显示“计算”列/字段后,我意识到这是不可能的。我考虑过构建一个触发器以在桌子上触发,但是当我发布应用程序时不会被推送。那么,在不使用 RIA 客户端的情况下,使用两个或多个数据源字段进行计算并存储在另一个字段中的最佳方法是什么?它可以在用户单击保存按钮时触发,甚至在字段包含可计算的数据时触发。

例如,表用户(之前):

First_Name (string)   Last_Name (string)   Stored_Full_Name (string)
John                  User                 NULL
Jane                  Doe                  NULL

当用户单击保存时,或者当 first_name 和 last_name 不为空时,“Last_Name, First_Name”作为单个列存储在同一个表的 Stored_Full_Name 列中。

例如,表用户(之后):

First_Name (string)   Last_Name (string)   Stored_Full_Name (string)
John                  User                 User, John
Jane                  Doe                  Doe, Jane

我假设可以使用相同的技术来计算成本或其他项目?

任何示例代码将不胜感激。

4

2 回答 2

1

这很容易。创建一个名为“FullName”的字符串类型屏幕变量,显示文本为“Full Name”。编辑 Screen 的“create”方法并将所需的值分配给 JavaScript 中的变量。- 在上面的示例中,您需要以下内容:

screen.FullName = screen.Last_Name.value + ", " + screen.First_name.value;

然后将变量从左侧的数据选项卡拖到屏幕上的用户表中。

您可能需要将计算值更新为 Save 管道的一部分,但 create() 方法应在屏幕重绘时触发。如果您想将其保存到用户表中的可为空列中,您只需将字段值分配给新值即可,但我不确定您为什么要打扰,因为这会破坏表的规范化。在您在客户端预处理保存的更改的函数中,添加以下代码以使其如此:

screen.FullNameTableField = screen.FullName.value;

我使用一种非常相似的技术来创建行内“编辑”和“删除”记录级表条目。

高温高压

于 2014-08-28T19:29:07.387 回答
1

对于简单的计算属性,您始终可以在用户原型上创建函数。这篇博文对此进行了解释:http: //lobfactory.wordpress.com/2013/05/03/computed-fields-in-the-html5-client/

于 2013-12-13T09:31:57.073 回答