在 LightSwitch 中,我想在用户选择年份 (int) 的位置添加一个屏幕过滤器,因此查询返回特定日期 (DateTime) 在该年份范围内的所有记录。
我想了解如何添加适当的 PreprocessQuery 代码。
非常感谢。
在 LightSwitch 中,我想在用户选择年份 (int) 的位置添加一个屏幕过滤器,因此查询返回特定日期 (DateTime) 在该年份范围内的所有记录。
我想了解如何添加适当的 PreprocessQuery 代码。
非常感谢。
假设你有一个这样的表:
Id DateTimeColumn
---- -------------------
0 1/1/2001 8:00 AM
1 2/2/2002 8:00 AM
2 3/3/2003 8:00 AM
3 4/4/2004 8:00 AM
将调用的整数类型数据项添加YearSelect
到屏幕并创建一个包含您想要的所有年份的选择列表(或者,使用表格列出所有年份)。将其拖到屏幕树上,它将成为一个 AutoCompleteBox 并允许您选择一年。
在上表的查询设计器中创建一个查询并添加一个名为YearFilter
. 将此查询添加到屏幕并绑定YearFilter
到YearSelect
.
返回查询设计器,单击编写代码旁边的箭头并选择TableName_PreprocessQuery
。将以下代码添加到 PreprocessQuery:
partial void TableName_PreprocessQuery(int YearFilter, ref IQueryable<Cours> query)
{
if (YearFilter != null)
{
query = from d in query
where d.DateTimeColumn.Year = YearFilter
select d;
}
}
现在,当您从 AutoCompleteBox 中选择一年时,屏幕上与查询绑定的数据网格应更新并仅显示所选年份中的实体。