在下拉 Lightswitch 中过滤 FK 字段值

Filter FK field values in the drop down Lightswitch

我想向 table 中的字段添加 FK 关系,并在编辑时过滤显示在下拉列表中的值。

例如,table "Lookup" 中的 "Field1" 包含值 A1、A2、A3、B1、B2、B3。 我想在 table "Mapping" 中将其添加为 FK,其中我想在其中一个中显示 A1、A2、A3 中的值,在相同的 table 中将 B1、B2、B3 作为另一个 FK 显示。

你能帮忙吗?画面应该是这样的。当我添加 FK 关系时,每个人都会在编辑模式下显示所有下拉列表。我是 lightswitch 的新手。

正如 SwedishProgrammer 所述,您可以通过对查找使用额外的查询来轻松实现这一点 table。以下提供了实现此功能的分步指南(使用您的 A 和 B 前缀列表示例):

  1. 通过在解决方案资源管理器中右键单击查找 table 并 selecting 'Add Query' 或选择 'Query' 按钮位于 table 设计器屏幕顶部(对于 select 此按钮,您需要确保 'Server' 透视图在 select table 设计师屏幕)。

  2. 命名查询(例如 ALookups)并在查询设计器中或通过实施查询的 _PreprocessQuery 通用方法(select通过使用 Write Code\General Methods\_PreprocessQuery 查询设计器顶部的选项)。下面说明了这两种技术,每种技术使用略有不同的过滤方法(包含并开始于):

partial void ALookups_PreprocessQuery(ref IQueryable<Lookup> query)
{
    query = query.Where(q => q.Value.StartsWith("A"));
}
  1. 重复第一步和第二步创建第二个 BLookups 查询,检查字母 "B".

  2. 根据您在 'Editable Grid Screen' 上使用 Silverlight 客户端(由您的屏幕截图暗示)选择 'Add Data Item...' 按钮将 ALookups 查询添加为如下:

  1. 重复第四步添加 BLookups 查询。

  2. Select 查找 A 条目的自动完成框,然后在“属性”窗格中,将 'Choices' 属性 从 'Auto' 更改为 'ALookups'查询(第4步添加的数据项)如下:

  1. 重复第六步,将查找 B 条目更改为使用 'BLookups' 查询作为其条目选择。

  2. 这将在 editable 条目网格中提供单独过滤的条目,例如:

您还需要记住,上述步骤只会更改网格条目中的选项。如果您还想更改“添加和编辑”对话框中的选项,您需要实施类似的方法作为解决方案的一部分,LightSwitch 团队在以下博客 post 中详细介绍了该方法:

Creating a Custom Add or Edit Dialog (Sheel Shah)

最后,如果您需要在 LightSwitch HTML 客户端上实现此方法,则该方法本质上是相同的,并且在以下 Whosebug post:

中以迂回的方式进行了介绍