将值从一个屏幕传递到另一个屏幕过滤器参数

Pass Value from one screen to another screen filter Parameter

您好,我正在使用 VS 2013 开发 LightSwitch HTML 客户端

需要一些想法,

我只有一个浏览屏幕,例如请参考下面的内容,

浏览员工

当我点击任何一行时,它会转到另一个屏幕(不是同一个实体视图屏幕)。在另一个屏幕中,我将展示很多细节,

查看资源分配

在这个屏幕中,我从 SQL 视图实体中拉出,这将具有与前一个屏幕 (BrowseEmployee)

相同的 ID 字段

现在我的问题是,

  1. 如果我在第一个屏幕中单击 ID 1 员工,我只需要单独显示员工 ID 1 的详细信息。

  2. 即使我尝试将值作为参数传递给第二个屏幕中的过滤器,也没有任何效果。所以如果我将值作为过滤器参数传递给另一个屏幕会很方便。

谁能告诉我如何解决这个问题?

谢谢!

首先要了解一个重要信息,确保 ViewScreen 实际上与您的工程师屏幕相关联,而不是 ResourceAllocation 屏幕,因为有一个外键将它们链接在一起,然后可以通过这种方式访问​​信息。所以 BrowseEngineers 将转到 ViewEngineers

当 table 之间存在关系时,我就是这样做的,所以在你的侧边栏上你应该看到“Edit ResourceAllocation 旁边的查询”。 table。如果它在 Employee table 下面是蓝色的,点击它,然后它会把这个 table 添加到屏幕上,然后点击“Edit 查询”按钮

这里有 3 个选项,我会把它应用到上面的 tables

  1. 过滤器 - [WHERE] [Employee.EmployeeID] [=] [passEmployeeID]
  2. 排序 //本例不需要
  3. Parmeters = [参数] [passEmployeeID] 类型 [Integer]

现在,当您单击“返回 ViewResourceAllocation”时,在 ResourceAllocation table 下,您刚刚创建的参数是现在出现。然后进行以下步骤

  1. 将其拖到屏幕上并将其属性设置为“不可见
  2. 单击“编辑 postRender 代码”并在其中键入以下代码:
myapp.ViewEpmloyees.passEmployeeID_postRender = function (element,   contentItem) {
      contentItem.screen.passEmployeeID=
      contentItem.screen.Employees.EmployeeID;
     };

我们刚刚为 ResourceAllocation Table 创建了一个过滤器,并将它设置为一个参数,现在我们需要它有一个值,所以我们赋值它在屏幕呈现为您在之前的 BrowseEmployees 屏幕中单击的员工 ID 之前,Lightswitch 为您传递了该屏幕。

希望这能解决您遇到的问题。

注意:确保您在屏幕上也有 EmployeeID,如果您不想让用户看到它,请将其设置为“不可见

手动传递一个参数,重复下面的步骤,然后再做额外的:(举个例子生病

  1. 在左侧 window 上面写着 passEmployeeID 的地方,它现在应该出现两次,单击旁边有小框的那个,然后属性 window 应该会为此显示在右下角。在这里勾选“Is Parameter”框并进行测试,取消勾选“ 需要"
  2. 返回 BrowseEmployees 屏幕并单击 Tile 列表/table 列表中的“Item Tap”。你现在会看到这里说的是"passEmployeeID"。所以现在 ViewEmployee 屏幕要求 EmployeeID,因此我们必须将 ID 作为参数。
  3. 要创建参数,单击员工的编辑查询 table 并按照以下步骤操作,除了在返回之前,勾选参数的 "is Optional" 选项(当您单击在参数上这个选项显示在右下角的属性框中。
  4. 最后将这个参数拖到屏幕上,和第一步一样,将其属性更改为“is Parameter”并使确定“is Required”是错误的...现在,如果您重复第 2 步,并单击“[=19=”旁边的文本框]passEmployeeID",您在浏览屏幕上创建的新参数现在将成为选项之一,单击此选项并单击确定。

您现在已经成功地将一个参数从一个屏幕传递到另一个屏幕,在下面的示例中它毫无意义,但是这是完成的方式。

如果你有任何问题 post 评论和错误回复