方法: Silverlight の画面上のデータをフィルター処理する
[一覧と詳細]、[編集可能なグリッド]、および [検索データ] の画面に表示されるデータをフィルターできます。 たとえば、米国の顧客のみが表示されるようにフィルター処理できます。 データをフィルター処理するには、画面でコレクションのクエリを変更するか、またはカスタム クエリを作成し、それを使用して画面を作成します。
関連のビデオ デモについては、「How Do I: Sort and Filter Data on a Screen in a LightSwitch Application? (操作方法: LightSwitch アプリケーションで画面のデータを並べ替える/フィルター処理する)」を参照してください。
画面のクエリを変更
[一覧と詳細]、[編集可能なグリッド]、および [検索データ] 画面には、クエリに基づくコレクションが含まれます。 たとえば、顧客エンティティに基づくコレクションは既定で Select * from Customers というクエリを使用します。 クエリの条件をカスタマイズすることができます。 変更は画面のコレクションにのみ適用され、クエリ全体に影響はありません。
画面コレクションのクエリを変更するには
[画面メンバー リスト] で、変更するコレクションの横の [クエリの編集] をクリックします。
クエリ デザイナーでクエリを変更します。
詳細については、「方法: クエリ デザイナーを使用してクエリをデザインする」を参照してください。
クエリの変更を完了した後、クエリ デザイナーの左上隅にある戻るの矢印をクリックすると、画面デザイナーに戻ります。
ソリューションでクエリを使用して画面を作成
LightSwitch ソリューションのクエリに基づいて、[一覧と詳細]、[編集可能なグリッド]、または [検索データ] の画面を作成することができます。
ソリューションにクエリを追加する方法の詳細については、「方法: クエリを追加、削除、変更する」を参照してください。
クエリをデザインする方法の詳細については、「方法: クエリ デザイナーを使用してクエリをデザインする」を参照してください。
ソリューションでクエリを使用して画面を作成するには
画面を作成します。 [新しい画面を追加] ダイアログ ボックスの [画面データ] フィールドで、クエリを選択します。 画面を作成する方法の詳細については、「方法: Silverlight の画面を作成する」を参照してください。
クエリで定義されている条件を満たしているデータのみが画面に表示されます。
パラメーターを受け入れるクエリを使用して画面を作成するには
画面を作成します。 [新しい画面を追加] ダイアログ ボックスの [画面データ] フィールドで、パラメーターを受け取るクエリを選択します。 画面を作成する方法の詳細については、「方法: Silverlight の画面を作成する」を参照してください。
クエリにはパラメーター値が必要なため、新しい画面は実行中のアプリケーションのナビゲーション メニューには表示されません。 ユーザーが別の画面内のフィールドに値を提供すると、画面が表示されます。 他の画面にフィールドを追加する必要があります。
画面デザイナーで、別の画面の [データ項目の追加] をクリックします。
[画面項目の追加] ダイアログ ボックスで、[ローカル プロパティ] を選択します。 [型] リストからローカル プロパティの型を選択します。
[名前] ボックスで、ローカル プロパティの名前、たとえば「CityName」と入力して、[OK] をクリックします。
[画面メンバー リスト] から、新しいローカル プロパティを [画面コンテンツ ツリー] にドラッグします。
[画面コンテンツ ツリー] で、ローカル プロパティを右クリックし、[ボタンの追加] をクリックします。
[ボタンの追加] ダイアログ ボックスで、[新しいメソッド] を選択し、[OK] をクリックします。
[画面コンテンツ ツリー] で、ボタンを右クリックし、[実行コードを編集] をクリックします。
コード エディターで、パラメーター化されたクエリ画面を表示するコードを記述します。 次の例は、CityName という名前のローカル プロパティの値を渡すことによって、ShowCustomerByCity 画面を表示します。
Private Sub Button_Execute() Application.ShowCustomersByCity(CityName) End Sub
partial void Button_Execute() { Application.ShowCustomersByCity(CityName); }