【问题标题】:Extjs keeping current select items in combo and adding new itemsExtjs 将当前选择的项目保持在组合中并添加新项目
【发布时间】:2014-10-30 14:12:12
【问题描述】:

我有一个角色组合框,其中已经有 3 个项目(加载的用户模型)。现在我需要将第 4 个项目添加到选择中,但它不会保留当前项目,当我添加第 4 个项目时,它将是组合中唯一选择的项目。

有没有办法实现这种行为? 我的网格记录是这样选择的

 doSelectUser: function(grid, record) {
        var me = this;
        var selectedRoleVals = record.get('roles');
        me.getUserForm().loadRecord(record);

然后我点击用户表单中的组合框:

 manageusers userform combobox[name=roles]': {
                select: this.doSelectRole
            }

组合处理程序

doSelectRole: function(combo, records) {
        var me = 
        var rec = records[0];

【问题讨论】:

  • 你是如何准确地加载组合存储中的记录?

标签: extjs combobox


【解决方案1】:

我怀疑你正在做类似的事情

combo.getStore().loadRecords(arrayOfRecords);

你需要做的

combo.getStore().loadRecords(arrayOfRecords, {addRecords: true});

loadRecords 默认使用新数据覆盖存储的内容。

并在您的组合框中添加一条简单的记录

Ext.ComponentQuery.query('combo[itemId=theComboItemId]')[0].getStore().add({value: 'aRoleValue', displayText: 'A new role'});

【讨论】:

  • 谢谢弗朗西斯。也许我没有清楚地描述我的情况。在我的用户表单中,我可以使用这行代码访问角色 var selectedRoleValuesFromUserModel = record.get('roles');现在我想将项目添加到此列表中,但我无法在我的组合处理程序中访问它们。我会稍微修改一下这个问题。
  • @sina 我已经编辑了我的答案。希望这能回答它。我不知道角色的模型定义,所以不能准确。
猜你喜欢
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多