2013-08-21 80 views
0

我想更改組合框中選定的記錄顯示順序。原因在於,從屏幕截圖中可以看到,組合框列表很長,因此員工無法輕鬆查看選定的值。是否有任何方法/功能根據所選記錄索引更改顯示值排序順序?如何更改組合框的選擇值顯示順序

enter image description here

+0

我認爲真正的問題可能是一個組合框的路要走。如果它足夠長,您必須對其進行分類,那麼您可能想要考慮替代方案。 –

+0

尊敬的傑夫,我這麼認爲,但是員工不知道記錄的名字。 –

+0

不會多個選擇組合是一個更簡單的方法?請參閱[本頁]上的第三個示例(http://docs.sencha.com/extjs/4.2.0/#!/example/form/combos.html)。 – rixo

回答

0

可以sortcustom function商店。這將反映在組合框中。

這將是這樣的:

combo.getStore().sort([{ 
    sorterFn: function(a, b) { 
     if (a.get('selected')) { 
      if (b.get('selected')) { 
       return a.get('name').localeCompare(b.get('name')); 
      } else { 
       return -1; 
      } 
     } else if (b.get('selected')) { 
      return 1; 
     } else { 
      return a.get('name').localeCompare(b.get('name')); 
     } 
    } 
}]); 
+0

親愛的rixo,如果我沒有弄錯'a,b ''選擇的值和目標值,對嗎? –

+0

'a'和'b'是兩個要比較的記錄,'-1'的返回值表示一個在'b'之前,'1'爲反向,'0'表示他們具有相同的順序(參見文檔['sorterFn'](http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.util.Sorter-cfg-sorterFn))。 – rixo

+0

The我的示例代碼存在的問題是,我不知道如何處理記錄的選擇狀態,因此我假設它將反映在記錄的某個字段中(在我的示例中爲「selected」)。 – rixo