在下拉Lightswitch中过滤FK字段值

时间:2016-02-17 22:39:53

标签: foreign-keys visual-studio-lightswitch lightswitch-2013

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

例如,表“查找”中的“Field1”包含值A1,A2,A3,B1,B2,B3。 我想在表格“Mapping”中将其添加为FK,其中我想在一个中显示A1,A2,A3中的值,并将B1,B2,B3中的值显示为同一个表中的另一个FK。

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

enter image description here

1 个答案:

答案 0 :(得分:2)

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

  1. 通过右键单击解决方案资源管理器中的查找表并选择“添加查询”或选择表设计器屏幕顶部的“查询”按钮来添加新查询(以选择此按钮您需要确保在表设计器屏幕的底部选择“服务器”透视图。)

  2. 命名查询(例如ALookups)并在查询设计器中指定所需的过滤器,或者通过实现查询的_PreprocessQuery通用方法(通过使用查询顶部的Write Code \ General Methods \ _PreprocessQuery选项选择)设计师)。以下说明了这两种技术对每种技术使用略有不同的过滤方法(包含和开始):

  3. Add query

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

    2. 如果您在“可编辑网格屏幕”上使用Silverlight客户端(屏幕截图隐含),请选择“添加数据项...”按钮以添加ALookups查询,如下所示:

    3. Add Data Item

      1. 重复步骤4以添加BLookups查询。

      2. 为Lookup A条目选择AutoCompleteBox,然后在Properties窗格中,将'Choices'属性从'Auto'更改为'ALookups'查询(在步骤4中添加的数据项),如下所示:< / p>

      3. Change the AutoCompleteBox choices

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

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

        3. The resulting editable entry grid The resulting editable entry grid

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

          Creating a Custom Add or Edit Dialog (Sheel Shah)

          最后,如果您需要在LightSwitch HTML客户端上实现此功能,则该方法基本相同,并在以下stackoverflow帖子中以环形方式介绍:

          Sorting data in Foreign key drop down lightswitch