Mashup Builder > 小器具 > 舊有小器具 > 進階格點 (舊有) > 在進階網格與樹網格中排序、搜尋及篩選
在進階網格與樹網格中排序、搜尋及篩選
排序、搜尋及篩選網格資料皆可透過具有單一 Filter 事件與 QueryFilter 參數的標準平台查詢服務進行處理。觸發 Filter 事件後,無論是排序、搜尋還是篩選網格資料,QueryFilter 參數皆可確保傳回的資料符合所有指定條件。
您可使用下列方式查詢您的資料以進行排序、搜尋及篩選:
設定包含資料的資料表,並使用標準平台 QueryDataTableEntries API 進行存取。
如果透過資料服務動態產生資料,請使用「查詢資料負載」功能來排序及搜尋資料負載中的資料。
如需有關查詢參數的詳細資訊,請參閱 ThingWorx 說明中心的查詢服務的查詢參數部份。
實行排序
1. 在 Mashup Builder 的內容面板中按一下 EnableSorting 內容,或在動態組態服務的 JSON 指令集中定義該內容,來將其設定為 true。QueryFilter 內容與 Filter 事件會顯示在內容面板中。
2. 可將 QueryFilter 內容繫結至要排序之資料所在的 query 輸入參數:
如果您的資料在表格中,請將 QueryFilter 繫結至 QueryDataTableEntries 服務的 query 參數。
如果您透過資料服務產生資料,請將 QueryFilter 繫結至資料服務的 queryFilter 參數。
3. 將篩選器事件繫結至在排序開始時觸發的服務:
如果您使用資料表,請將 Filter 事件繫結至 QueryDataTableEntries 服務。
如果您透過資料服務產生資料,請將 Filter 事件繫結至資料服務。
下列範例顯示已套用排序欄名稱與標題的查詢參數:
{"maxItems":100000,"query":{"sorts":[{"fieldName":"name","isAscending":true},{"fieldName":"title","isAscending":true}]}}
完成上述繫結步驟後,「繫結」面板應該會如下所示:
實行搜尋
搜尋可讓您在網格的任何欄中尋找字串值。
1. 在 Mashup Builder 的內容面板中按一下 EnableGridSearch 內容,或在動態組態服務的 JSON 指令集中定義該內容,來將其設定為 true。GridSearchLocation 內容、QueryFilter 內容與篩選器會顯示在內容面板中。
2. 您可使用 Mashup Builder 內容面板或 JSON 指令集中的 GridSearchLocation 內容,配置「搜尋」欄位在網格中的位置。可用選項包括:「右上」、「左上」、「右下」與「左下」。
3. QueryFilter 內容繫結至要搜尋之資料所在的輸出查詢參數:
如果您的資料在表格中,請將 QueryFilter 繫結至 QueryDataTableEntries 服務的查詢參數。
如果您透過資料服務產生資料,請將 QueryFilter 繫結至資料服務的查詢篩選器參數。
4. Filter 事件繫結至在搜尋開始時觸發的服務:
如果您使用資料表,請將 Filter 事件繫結至 QueryDataTableEntries 服務。
如果您透過資料服務產生資料,請將 Filter 事件繫結至資料服務。
下列範例顯示在所有欄中搜尋 Rain 事件的搜尋查詢:
{"maxItems":100000,"query":{"filters":{"type":"OR","filters":[{"fieldName":"id","type":"LIKE","value":"%Rain%"},{"fieldName":"date","type":"LIKE","value":"%Rain%"},{"fieldName":"max_temp","type":"LIKE","value":"%Rain%"},{"fieldName":"min_temp","type":"LIKE","value":"%Rain%"},{"fieldName":"cold","type":"LIKE","value":"%Rain%"},{"fieldName":"visibility","type":"LIKE","value":"%Rain%"},{"fieldName":"wind","type":"LIKE","value":"%Rain%"},{"fieldName":"precipitation","type":"LIKE","value":"%Rain%"},{"fieldName":"events","type":"LIKE","value":"%Rain%"},{"fieldName":"image","type":"LIKE","value":"%Rain%"},{"fieldName":"key","type":"LIKE","value":"%Rain%"},{"fieldName":"location","type":"LIKE","value":"%Rain%"},{"fieldName":"source","type":"LIKE","value":"%Rain%"},{"fieldName":"sourceType","type":"LIKE","value":"%Rain%"},{"fieldName":"tags","type":"LIKE","value":"%Rain%"},{"fieldName":"timestamp","type":"LIKE","value":"%Rain%"}]}}}
實行篩選
欲在網格中實行篩選,請將「資料篩選器」小器具新增至您要在其中建構網格的混搭。您只能根據基礎資料形式,將「資料篩選器」小器具新增至繫結至資料表的網格。
1. 從 Mashup Builder 左側的 「小器具」標籤中選取「資料篩選器」小器具,然後將其拖曳到混搭中。
2. 將「資料篩選器」小器具的輸出查詢參數繫結至進階網格的 QueryFilter 內容。在此情境下,QueryFilter 內容同時作為輸入與輸出功能使用。它會從「資料篩選器」接收輸入 (在此情況下會自動與任何使用中排序及搜尋輸入組合) 並針對查詢參數產生單一輸出。
3. 可將 QueryFilter 內容繫結至所篩選、排序或搜尋之資料表之 QueryDataTableEntries 服務的 query 輸入參數。
下列範例顯示了「資料篩選器」查詢,其具有單一篩選器參數,且事件值為 Rain:
{"maxItems":100000,"query":{"filters":{"fieldName":"events","type":"LIKE","value":"Rain*"}}}
當套用多個篩選器時,或當篩選器輸入與搜尋及排序參數組合時,篩選器查詢可能會變得更加複雜。下列範例顯示單一輸出查詢中排序、搜尋與篩選參數的組合:
{"maxItems":100000,"query":{"sorts":[{"fieldName":"id","isAscending":true},{"fieldName":"min_temp","isAscending":true}],"filters":{"type":"And","filters":[{"type":"And","filters":[{"fieldName":"events","type":"LIKE","value":"Rain*"},{"fieldName":"cold","type":"EQ","value":false}]},{"type":"OR","filters":[{"fieldName":"id","type":"LIKE","value":"%21%"},{"fieldName":"date","type":"LIKE","value":"%21%"},{"fieldName":"max_temp","type":"LIKE","value":"%21%"},{"fieldName":"min_temp","type":"LIKE","value":"%21%"},{"fieldName":"cold","type":"LIKE","value":"%21%"},{"fieldName":"visibility","type":"LIKE","value":"%21%"},{"fieldName":"wind","type":"LIKE","value":"%21%"},{"fieldName":"precipitation","type":"LIKE","value":"%21%"},{"fieldName":"events","type":"LIKE","value":"%21%"},{"fieldName":"image","type":"LIKE","value":"%21%"}]}]}}
在進階網格中,當與排序和/或搜尋一起使用篩選時,完成後,繫結應如下圖所示:
這是否有幫助?