我想在表格中的字段中添加FK关系,并在编辑时过滤下拉列表中显示的值。
例如,表“查找”中的“Field1”包含值A1,A2,A3,B1,B2,B3。 我想在表格“Mapping”中将其添加为FK,其中我想在一个中显示A1,A2,A3中的值,并将B1,B2,B3中的值显示为同一个表中的另一个FK。
你能帮忙吗?屏幕应该是这样的。当我添加FK关系时,每个人都会在编辑模式下显示所有下拉菜单。我是lightswitch的新手。答案 0 :(得分:2)
正如SwedishProgrammer所述,您可以通过对查找表使用其他查询来轻松实现此功能。以下提供了实现此目的的分步指南(使用A和B前缀列表的示例):
通过右键单击解决方案资源管理器中的查找表并选择“添加查询”或选择表设计器屏幕顶部的“查询”按钮来添加新查询(以选择此按钮您需要确保在表设计器屏幕的底部选择“服务器”透视图。)
命名查询(例如ALookups)并在查询设计器中指定所需的过滤器,或者通过实现查询的_PreprocessQuery通用方法(通过使用查询顶部的Write Code \ General Methods \ _PreprocessQuery选项选择)设计师)。以下说明了这两种技术对每种技术使用略有不同的过滤方法(包含和开始):
partial void ALookups_PreprocessQuery(ref IQueryable<Lookup> query)
{
query = query.Where(q => q.Value.StartsWith("A"));
}
重复第一步和第二步,创建第二个BLookups查询,检查字母“B”。
如果您在“可编辑网格屏幕”上使用Silverlight客户端(屏幕截图隐含),请选择“添加数据项...”按钮以添加ALookups查询,如下所示:
重复步骤4以添加BLookups查询。
为Lookup A条目选择AutoCompleteBox,然后在Properties窗格中,将'Choices'属性从'Auto'更改为'ALookups'查询(在步骤4中添加的数据项),如下所示:< / p>
重复第六步,更改Lookup B条目,使用'BLookups'查询作为其条目选择。
这将在可编辑的条目网格中提供单独过滤的条目,例如:
您还需要记住,上述步骤只会更改网格条目中的选项。如果您还想更改“添加和编辑”对话框中的选项,则需要在LightSwitch团队的以下博客文章中详细介绍解决方案的一部分:
Creating a Custom Add or Edit Dialog (Sheel Shah)
最后,如果您需要在LightSwitch HTML客户端上实现此功能,则该方法基本相同,并在以下stackoverflow帖子中以环形方式介绍: