开关查询/子查询/下拉选择列表
本文关键字:查询 选择 列表 开关 | 更新日期: 2023-09-27 18:13:10
我正在使用c#在VS2013中开发LightSwitch HTML应用程序。我有一个主屏幕,允许用户选择一个网站,他们被授权使用。它将这个站点id传递给搜索屏幕,我想用一堆搜索选项来填充搜索屏幕,以搜索资产。
在数据库中,我有3个表使用SQL Server:
Site (Id, ShortName, LongName, Description)
Unit (Id, Code, Description)
SiteUnit (Id, SiteId, UnitId)
为有效的组合。
由于我在传递SiteId
,我想向用户展示(除其他事项外)他们可以从(Code
字段从单位)中搜索的有效单位的下拉列表
我已经尝试了很多方法来实现这个目标,但是到目前为止都没有结果。
我已经将数据项(查询)添加到SiteUnit
表的页面上,参数为SiteId
,这将返回适当的记录。
现在我想用它来过滤Unit
表,以显示适当的选择。
所有合适的外键都被添加了,但是我就是不明白。
我对LightSwitch只有基本的了解。您不能像在SQL中那样直接使用SQL代码或执行多个表连接。但是,如果您可以访问数据库,则可以创建视图,然后像查询表一样查询该视图。下面的代码将创建一个视图,列出每个站点的每个单元。在SiteID上调用带有过滤器的视图将为该站点提供单元。
Create View v_UnitsBySiteID as
SELECT Id, Code, Description
FROM Unit u
INNER JOIN SiteUnit su
ON u.ID = su.UnitID
根据需要更改返回的内容。这有帮助吗?
您需要使用参数对Unit
表添加另一个过滤器查询,就像您对SiteUnit
表所做的那样。然后需要将新参数设置为适当的UnitId
。这可以通过多种方式实现。
最简单的方法是将参数绑定直接设置为SiteUnitQuery.SelectedItem.UnitId
。但是,如果您需要在UnitQuery
执行时进行其他处理,则可以在SiteUnitQuery_SelectionChanged()
方法中手动设置新参数,或者通过某种按钮设置新参数。