1

LightSwitch では、ユーザーが年 (int) を選択するスクリーン フィルターを追加したいので、クエリは特定の日付 (DateTime) がその年の範囲内にあるすべてのレコードを返します。

適切な PreprocessQuery コードを追加する方法を理解したいと思います。

どうもありがとう。

4

1 に答える 1

1

次のようなテーブルがあるとします。

 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 を画面に追加し、 にバインドYearFilterYearSelectます。

クエリ デザイナーに戻り、[コードの記述] の横にある矢印をクリックして、[ ] を選択します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 から年を選択すると、クエリにバインドされている画面上のデータ グリッドが更新され、選択した年にあるエンティティのみが表示されます。

于 2012-09-12T12:50:31.457 に答える