【问题标题】:How can I prevent more than one tag to be selected at once on a ExtJs Sencha tagfield?如何防止在 ExtJs Sencha 标签字段上一次选择多个标签?
【发布时间】:2020-12-28 03:01:18
【问题描述】:

如何防止在 ExtJs Sencha 标签字段上同时选择多个标签?我也希望只选择一个,并且一旦选择了元素就保持选中状态。当我设置 multiSelect: false 如果我向控件插入新元素时,我收到一条错误消息。

这是一个例子。如果您按 shift 键,您将能够选择多个。我只想选择一个。

    Ext.application({
    name : 'Fiddle',

    launch : function() {
        var shows = Ext.create('Ext.data.Store', {
            fields: ['id','show'],
            data: [
                {id: 1, show: 'Tag 1'},
                {id: 2, show: 'Tag 2'},
                {id: 3, show: 'Tag 3'}
            ]
        });

        Ext.create('Ext.window.Window', {
            //renderTo: Ext.getBody(),
            title: 'Tagfield Test',
            height: 200,
            width: 500,
            layout: 'fit',
            items: [{
                xtype: 'tagfield',
                fieldLabel: 'Pick a tag',
                store: shows,
                displayField: 'show',
                valueField: 'id',
                queryMode: 'local',
                filterPickList: true,
                minWidth: 300,
                maxWidth: 200,
                maxHeight: 10
            }]
        }).show();
    }
});

https://fiddle.sencha.com/#view/editor&fiddle/38o7

Two tags selected at the same time

【问题讨论】:

    标签: javascript extjs extjs6-classic


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      tagField 渲染后更改选择模型模式:

      Ext.application({
          name : 'Fiddle',
      
          launch : function() {
              var shows = Ext.create('Ext.data.Store', {
                  fields: ['id','show'],
                  data: [
                      {id: 1, show: 'Tag 1'},
                      {id: 2, show: 'Tag 2'},
                      {id: 3, show: 'Tag 3'}
                  ]
              });
      
              Ext.create('Ext.window.Window', {
                  //renderTo: Ext.getBody(),
                  title: 'Tagfield Test',
                  height: 200,
                  width: 500,
                  layout: 'fit',
                  items: [{
                      xtype: 'tagfield',
                      fieldLabel: 'Pick a tag',
                      store: shows,
                      displayField: 'show',
                      valueField: 'id',
                      queryMode: 'local',
                      filterPickList: true,
                      minWidth: 300,
                      maxWidth: 200,
                      maxHeight: 10,
                      // Change selection model mode after render.
                      listeners: {
                          afterrender: function(tagField) {
                              tagField.selectionModel.setSelectionMode('SINGLE');
                          }
                      }
                  }]
              }).show();
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-26
        • 1970-01-01
        • 2019-02-06
        • 2011-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多