2017-08-28 112 views
0

我有一個有幾列的網格,列的「車輛」列有下拉菜單(HTML選擇元素)中提供的選項。 我也有一個輸入類型的文本,用戶可以輸入一個字符串。Ag-grid過濾器下拉選項

我想根據用戶在輸入字段中插入的字符串來過濾Vehicle列中的所有下拉選項。

例如:

下拉有4個選項:

  • 列表項
  • 自行車1
  • 自行車2
  • 轎廂1
  • 車2

如果用戶在輸入輸入中鍵入「汽車」,則下拉應僅顯示汽車(汽車1,汽車2)的選項。

我不想影響行。只需在Vechicle欄中的所有下拉列表中的下拉選項。

由於限制,我無法提供此代碼。

如何使用vanilla JavaScript實現這個功能?

在此先感謝。

+0

https://stackoverflow.com/q/21332545/5187323或更具體的https://stackoverflow.com/a/29076565/5187323 –

+0

感謝您的評論@JarodMoser我相信有些人會覺得這有用,但在我特殊的情況下,我需要一個純粹的JavaScript解決方案,所以不允許jQuery或任何其他框架。 –

回答

0

我知道我的問題沒有代碼是有點抽象的,因爲我想要一些指導而不是直接的答案。

就像我在問題中提到的,我有一個輸入字段用於過濾選項。如果用戶按下「Enter」,則會進行Ajax調用以從數據庫中獲取過濾結果。數據庫返回一個包含json對象的字符串。

var httpRequest = new XMLHttpRequest(); 
var jsonData = null; 
    httpRequest.onload = function() { 
     if (httpRequest.readyState === 4) { 
      if (httpRequest.status === 200) { 
       jsonData = json.parse(httpRequest.responseText); 
      } else { 
       jsonData = httpRequest.statusText; 
      } 
     } 
    }; 

在此之後,我使用columnApi.getColumn(「車輛」)來獲取我想要影響的列。

var col = gridOptions.columnApi.getColumn("vehicles"); 

通過上面的代碼,我現在可以使用cellEditorParams來改變它的值:

col.colDef.cellEditorParams.values = jsonData; 

希望這是有人在將來有用。