在组合框ExtJs中对字符串特征进行排序

qqrboqgw  于 2024-01-07  发布在  其他
关注(0)|答案(1)|浏览(183)

我有以下情况
在软件中,store combobox的特征由客户端定义为String,但combobox的类型为:
A 1 A 11 A 2 A 21 A 3.
但我的客户需要一个像下面这样的A1A2A3A11A21...
我怎样才能从前面的威胁中获得这些信息并正确排序?

3j86kqsm

3j86kqsm1#

你需要使用排序器功能,并根据你的用例更新逻辑,如下所示,

  1. Ext.application({
  2. name: 'YourApp',
  3. launch: function () {
  4. var Store = Ext.create('Ext.data.Store', {
  5. data: [
  6. { sampledata: 'A 1' },
  7. { sampledata: 'A 11' },
  8. { sampledata: 'A 2' },
  9. { sampledata: 'A 21' },
  10. { sampledata: 'A 3' }
  11. ],
  12. sorters: [{
  13. sorterFn: function(item1, item2) {
  14. var pattern = /([A-Za-z]+) (\d+)/;
  15. var match1 = item1.get('sampledata').match(pattern);
  16. var match2 = item2.get('sampledata').match(pattern);
  17. var groupComparison = match1[1].localeCompare(match2[1]);
  18. if (groupComparison !== 0) {
  19. return groupComparison;
  20. }
  21. var num1 = parseInt(match1[2], 10);
  22. var num2 = parseInt(match2[2], 10);
  23. return num1 - num2;
  24. }
  25. }]
  26. });
  27. Ext.create('Ext.form.ComboBox', {
  28. store: Store,
  29. displayField: 'sampledata',
  30. fieldLabel: 'ComboBox',
  31. renderTo: Ext.getBody()
  32. });
  33. }
  34. });

字符串

展开查看全部

相关问题