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
ます。この Query を画面に追加し、 にバインド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 から年を選択すると、クエリにバインドされている画面上のデータ グリッドが更新され、選択した年にあるエンティティのみが表示されます。