选择行Ext.dataview,基于门店的列表

axkjgtzd  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(141)
  1. Ext.create('Ext.data.Store', {
  2. fields: ['id', 'name'],
  3. storeId: 'modules',
  4. data : [
  5. {"id":"0", "active": "1", "label": "RST", "name":"строка 1"},
  6. {"id":"1", "active": "0", "label": "KAS", "name":"строка 2"},
  7. {"id":"2", "active": "1", "label": "UKR", "name":"строка 3"},
  8. {"id":"3", "active": "0", "label": "KJV", "name":"строка 4"},
  9. ]
  10. });

在项中:

  1. {
  2. xtype: 'list',
  3. store: 'modules',
  4. mode: 'MULTI',
  5. queryMode: 'local',
  6. fullscreen: true,
  7. margin: '10 10 10 10',
  8. itemTpl: '<div class="contact">{id} <b>{label}</b> {name}</div>'
  9. }

如何根据Store中的资产索引“active”选择“List”中的特定行?
加载时,第一行和第三行应突出显示(选中)
这可以基于XTemplate实现吗?

7z5jn7bk

7z5jn7bk1#

XTemplate用于自定义显示列表中的行。对于选择,您需要在循环中的列表上使用setSelection方法,该循环将获取具有active=="1"的所有记录。检查以下代码,这里还有一个提琴显示它在工作:

  1. Ext.application({
  2. name: 'Fiddle',
  3. launch: function () {
  4. let store = Ext.create('Ext.data.Store', {
  5. fields: ['id', 'name', 'active', 'label'],
  6. data: [{
  7. "id": "0",
  8. "active": "1",
  9. "label": "RST",
  10. "name": "строка 1"
  11. }, {
  12. "id": "1",
  13. "active": "0",
  14. "label": "KAS",
  15. "name": "строка 2"
  16. }, {
  17. "id": "2",
  18. "active": "1",
  19. "label": "UKR",
  20. "name": "строка 3"
  21. }, {
  22. "id": "3",
  23. "active": "0",
  24. "label": "KJV",
  25. "name": "строка 4"
  26. }, ]
  27. });
  28. let list = Ext.create({
  29. xtype: 'list',
  30. store: store,
  31. mode: 'MULTI',
  32. queryMode: 'local',
  33. fullscreen: true,
  34. margin: '10 10 10 10',
  35. itemTpl: '<div class="contact">{id} <b>{label}</b> {name}</div>',
  36. renderTo: Ext.getBody(),
  37. });
  38. store.each(function (record, id) {
  39. if (record.get('active') == "1") {
  40. list.setSelection(record);
  41. }
  42. });
  43. }
  44. });
展开查看全部

相关问题