如何使用 Ext-JS 中的默认值填充 ItemSeclector 中的“选定”列

How to populate Selected column in ItemSeclector with default values in Ext-JS

本文关键字:中的 选定 ItemSeclector 填充 Ext-JS 何使用 默认值      更新时间:2023-09-26

我在Ext.ux.form中使用ItemSelector。 我需要用一些默认值填充"已选择"列。 我可以正确填充"可用"列,但是当我尝试将 toField 的存储设置为默认值时,它最终会出现在"可用"列中。 以下是代码片段。 谁能帮我?

                                 var data = [{"name":"abcd"}];
                                 var ds = SailPoint.Store.createStore({
                                    url: CONTEXT_PATH + '/define/applications/discoverServers.json',
                                    fields: ['name','value'],
                                    autoLoad: true,
                                    baseParams: {domain : domain},
                                    listeners: {
                                                load: function() {
                                                alert('store loaded');
                                            }
                                        }
                                });
                                var itemselectorField = new Ext.Panel({
                                    title: 'Select Servers',
                                    width: 700,
                                    id:'selectServerId',
                                    bodyPadding: 10,
                                    height: 300,
                                    renderTo: 'itemselector',
                                    layout: 'fit',
                                    items:[{
                                        xtype: 'itemselector',
                                        name: 'itemselector',
                                        id: 'itemselectorField',
                                        anchor: '100%',
                                        imagePath: '../images/extjs-ux/',
                                        store: ds,
                                        displayField: 'name',
                                        valueField: 'name',
                                        allowBlank: false,                                          
                                        msgTarget: 'side',
                                        fromTitle: 'Available',
                                        toTitle: 'Selected',
                                        listeners: {
                                            afterrender: function() {
                                                    Ext.getCmp('itemselectorField').toField.store.loadData(data);
                                                    Ext.getCmp('selectServerId').doLayout();
                                                    alert("After Render");
                                            }
                                        }
                                    }
                                ]
                                });

您应该使用项目选择器字段的 setValue 方法。侦听器对象应如下所示:

listeners: {
    afterrender: function(field) { //Add the field argument to the afterrender
        var a = []; // The setValue method receives an Array
        for(var key in data) {
            a.push(data[key].name);
        }
        field.setValue(a);
    }
}

一个小提琴,所以你可以看看:https://fiddle.sencha.com/#fiddle/gue