none
SharePoint2013 フィルタを設定したリストの初期表示について RRS feed

  • 質問

  • カスタムリストを表示するページを作っています。
    要件は(1)検索条件を入力する。(2)条件に一致したデータを表示する。 です。
    該当ページに「HTMLフォームのWebパーツ」を配置して、カスタムリストにフィルタを設定することで(1)(2)の動作を実現することができました。
    しかし、画面を初期表示した状態では、検索条件が指定されていないのでカスタムリストのデータが全て表示されています。
    (1)画面初期状態ではデータを表示せず、(2)検索条件を入力したら、(3)条件に一致したデータを表示する
    という流れで処理をしたいのですが、やり方が分りません。ご存知の方がいらっしゃいましたら、ご教示下さい。宜しくお願いいたします。
    2019年6月11日 8:58

すべての返信

  • フィルタを設定するWebパーツを「テキストフィルター」に変更して既定値に、データがヒットしない文字列を設定したらやりたいことが実現できました。
    (1)画面初期状態ではデータを表示せず(2)検索条件を入力したら(3)条件に一致したデータを表示する) しかし、検索条件の文字列を削除したら、データが全件表示されてしまいました。検索条件が未入力の場合は、データを表示しないようにしたいのですが、なかなか上手くいきません。

    2019年6月12日 3:24
  • 該当の画面に、「スクリプトエディター」を追加して、以下のJavaScriptを実行するようにしました。
     (1)検索条件を入力するフィールドの onchangeイベントに関数を登録する。
     (2)検索条件が未入力だったら、データがヒットしない文字列をセットする。

    var KeyFldID = "ctl00_XXXXXXXXXXXXXXXXXX_SPTextSlicerValueTextControl";

    window.onload = function () {
        document.getElementById( KeyFldID ).onchange = function(){
            changeSerchButton();
        };
    }

    function changeSerchButton() {
        if( document.getElementById( KeyFldID ).value == "" ) {
            document.getElementById( KeyFldID ).value = "--------";
        }
    }

    やりたいことは実現できましたが、強引で、汎用的ではない方法だと思います。もっと良い方法があれば、教えて下さい。
    2019年6月24日 4:27