2017-06-28 10 views
0

剣道グリッドを持つアプリケーションがあります。起動時に剣道グリッドデータソースにフィルタを適用する方法

グリッド外にある複数のドロップダウンリストを使用してグリッドをフィルタリングできます。

検索をクリックすると、データソースフィルタリストにフィルタが追加されます。たとえば、

var dataSource = $("#grid").data("kendoGrid").dataSource; 
      var dataSourceFilterQuery = new Array(); 

    if ($("#something").data("kendoDropDownList").value() !== null) { 
        dataSourceFilterQuery.push({ field: "something", operator: "IsGreaterThanOrEqualTo", value: ($("#something").data("kendoDropDownList").value()) }); 
      } 

      dataSource.filter(dataSourceFilterQuery);  

次に、結果が得られます。できます。 次に、すべてのドロップダウンリストの値をlocalStorageの1つのフィルタとして保存することができます。私は、アプリケーションを再起動すると

const filtersObject = { 
       Something: whatever.value(), 
       ... 
      }; 

      this.storage.setItem("Filter", JSON.stringify(filtersObject)); 

は、dropdownlistsがのlocalStorage

const filter = JSON.parse(localStorage.getItem("Filter")); 

       $("#something").data("kendoDropDownList").value(filters.whatever || "");     
      } 

ものがあるである何が移入され、私は時にデータソースに、彼らは、のlocalStorageに存在する場合、これらのフィルタを追加したいですアプリケーションが開始され、検索を再度クリックする必要がないときに、ユーザーが保存したフィルターの結果をユーザーが見ることができるように、アプリケーションが開始されます。

だから、私が欲しいのは、グリッドが表示される前に、この

var dataSource = $("#grid").data("kendoGrid").dataSource; 
      var dataSourceFilterQuery = new Array(); 

    if ($("#something").data("kendoDropDownList").value() !== null) { 
        dataSourceFilterQuery.push({ field: "something", operator: "IsGreaterThanOrEqualTo", value: ($("#something").data("kendoDropDownList").value()) }); 
      } 

      dataSource.filter(dataSourceFilterQuery); 

を適用しないことです。

これは可能ですか?

Tksです。

答えて

関連する問題