2015-06-30 82 views
0

我正在使用Ext.js 5 web應用程序。我有一個Ext.grid.Panel,我有如何以編程方式設置列過濾器?

selModel: { 
    type: 'spreadsheet'  
    }, 

這裏是什麼,我現在有一個屏幕截圖:

enter image description here

我想可以設置過濾器上'狀態'欄改爲'就緒'。我不知道我需要做什麼。

謝謝!

更新:感謝德雷克指出我在正確的方向。我需要做的是添加此代碼...

1 /*global */ 
    2 Ext.define("Requestor.view.main.RequestGrid", { 
    3 extend: 'Ext.grid.Panel',  // Our base class. A grid panel. 
... 
42 // Here we define our grid columns based on our associated store and model. 
43 columns: [ 
... 
72  { 
73  text: 'Status', 
74  dataIndex: 'status', 
75  itemId: 'status', 
76  renderer: function(value, metaData) { 
77 //RED 
78  var filter = this.up('panel').down('#status').filter; 
79  if (!filter.menu) { 
80   filter.createMenu(); 
81   filter.menu 
82    .down('menuitem[value="Ready"]') 
83    .setChecked(true); 
84  } 
85 //RED 
86   metaData.tdStyle = (value == 'Ready') ? 
87   'color:green;font-weight: bold' : 
88   'color:red;font-style: italic' 
89   return(value) 
90  }, 
91  filter: 'list', 
92  flex: 1, 
93  }, 
+0

看起來你已經有了['list'](http://docs.sencha.com/extjs/5.1/ 5.1.1-apidocs /#!/ api/Ext.grid.filters.filter.List)過濾器已經應用到Status列,那麼通過點擊4個複選框中的一個來設置*它有什麼問題?或者你是否需要通過編程來完成?或者是什麼? – Greendrake

+0

如何以編程方式設置列過濾器?所以,是的,我需要通過編程來完成。 –

+0

哈哈,我只是沒有在你的問題的主體中看到*編程*這個詞 - 它只在我的雷達錯過的標題中:) 我很高興我的回答很有幫助,而且你似乎很高興與您的解決方案。雖然看起來,你正在'renderer'列進行過濾器檢查。這將被稱爲**在網格中的每個**行,你看?我想你不想那樣。如果你需要在渲染網格後立即設置過濾器,那麼在'afterrender'事件處理器中檢查過濾器會更合適。 – Greendrake

回答

1
  1. 檢索列過濾器。爲了簡單起見,分配一個itemId到列配置:
{ 
    dataIndex: 'status', 
    text: 'Status', 
    itemId: 'status', 
    flex: 1, 
    filter: 'list' 
} 
  • 啓動它的菜單,如果不存在它;
  • 檢索相關複選框菜單項並進行檢查。
  • 代碼:

    var filter = grid.down('#status').filter; 
    if (!filter.menu) { 
        filter.createMenu(); 
    } 
    filter.menu 
        .down('menuitem[value="Ready"]') 
        .setChecked(true); 
    

    完整的示例:https://fiddle.sencha.com/#fiddle/pn6

    +0

    感謝您的回覆,但是當我運行小提琴示例時,篩選器和就緒複選框未被選中,並顯示未準備就緒的行。 –

    +0

    好的,現在我明白了,謝謝DrakeES的幫助。我已經用重要的細節更新了我的問題。 –

    +0

    感謝您的幫助。我仍然有幾個問題,我把它們放到一個新問題中:http://stackoverflow.com/questions/31190820/where-to-programmatically-set-column-filters-when-using-a-spreadsheet-selmodel請問您可以請看一看 :) –

    相關問題