Skip to content

ビュー(フィルタ・ソータ)と View の違い ​

第6版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

標準機能の「ビュー」(フィルタ・ソータの設定を保持する機能)と、サーバースクリプトの view(View)は、同じ読みですが内部では別の機能として扱われます。確認したソースでは、サーバースクリプトの View にセットしたフィルタ・ソータは、既定のビューや画面上で操作したフィルタ・ソータに上書きで合成されます。 既存のフィルタを消して View の内容だけにしたい場合は、view.ClearFilters() を呼びます。

INFO

1.5.8.1 のソース(ServerScriptUtilities.cs)には、View に何かセットされていると既定のビューや画面上のフィルタ・ソータをすべて無効にする処理はなく、合成される実装になっています。

適用順 ​

ビューと View の適用はどちらもサーバー側で行われ、次の順で処理されます。

図を読み込み中…

各手順の内容は次のとおりです。

1. ビューの保持モードに応じてフィルタ・ソータをセットする ​

ビューの保持モード処理
保存しない既定のビューがあれば、そのフィルタ・ソータをセットする
セッションセッション中に保持されているビュー情報があればそれをセットする。なければ既定のビューがあればそれをセットする
ユーザユーザ毎に永続化されているセッション情報にビュー情報があればそれをセットする。なければ既定のビューがあればそれをセットする

テーブルの管理の「ビュー」タブ。ビューの一覧と「ビューの保存種別」

「ビューの保存種別」で保持モード(保存しない・セッション・ユーザ)を選ぶ

2. サーバースクリプトの View を適用する ​

確認したソースでは、サーバースクリプトの View は次のように適用されます(ServerScriptUtilities.cs)。

  1. view.ClearFilters() を呼んでいた場合は、手順 1 でセットされたフィルタ(ColumnFilterHash のほか、未完了・自分・期限間近・遅延・期限切れ・検索語)を 削除する(ServerScriptModelView.cs)
  2. view.Filters の各キーを、フィルタに上書き(同じキー)または追加(ないキー)でセットする
  3. view.Sorters の各キーを、ソータに上書きまたは追加でセットする。ソータを消すメソッドはないため、手順 1 のソータは残る

View に何もセットされていなければ、手順 1 の結果がそのまま使われます。

WARNING

view.Filters で指定した項目は、利用者が画面で同じ項目に指定したフィルタを上書きします。view.ClearFilters() を呼ぶと、画面で指定したほかの項目のフィルタも消えます。画面操作と併用したい場合は、この挙動を前提に設計してください。

関連ページ ​

変更履歴

第6版記事の確認版を繰り返す表現を整理する
第5版「ビュー(フィルタ・ソータ)と View の違い」にスクリーンショットを追加
第4版本文から元記事や以前の版への言及を除き、正しい動作だけを書く形に整理
第3版「機能の仕様と使いこなし」を 1.5.8.1 のソースで検証して修正
第2版記事のファイル名に並び順の番号を付け、元記事リンクを frontmatter の sources に移行
第1版「機能の仕様と使いこなし」セクションの記事を追加