Как заполнить группу флажков из запроса SQL - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть запрос, который возвращает все заголовки столбцов в таблице.Я хочу заполнить метки полей значений для каждого флажка в моей группе значениями, возвращенными из запроса.узел id будет значением, а текстовый узел будет меткой флажка.

Запрос инициируется ActionName в событии загрузки хранилища.

Вот мой код

{
            xtype       : 'checkboxgroup',
            fieldLabel  : 'Column Names',
            id          : 'chkColumnNames',
            itemId      : 'chkColumnNames',
            cls         : 'x-check-group-alt',
            // Distribute controls across 5 even columns, filling each row
            // from left to right before starting the next row
            columns: 5,
            store          : Ext.create('Ext.data.Store', {
                model    : 'Personnel.ART.String.ChoiceList',       
                autoLoad : true,
                sorters: [{
                    property: 'text',
                    direction: 'ASC'
                }],
                proxy    : {
                    type     : 'ajax',
                    url      : IXYZ.portal.path + 'IXYZDBService.asmx/jsonSQLActions',
                    actionMethods : {read : 'POST'},
                    extraParams : {
                        AppAcronym      : IXYZ.application.acronym, 
                        WFAcronym       : IXYZ.workflow.acronym,
                        Process_id      : -1,
                        ActionName      : 'ART.SELECT.ADHOC.COMBINED_PERSONNEL.COLUMN.NAMES',
                        suppressLog     : true,
                        tokenProcessing : 'False'
                    },
                    reader   : {type : 'xml', record : 'row'}
                },
                listeners      : {
                    load: function(store, records, successful) {
                        columnNamesCheckbox = Ext.getCmp('chkColumnNames');
                        var columnNameItems = [];

                        for(var i = 0; i < records.length; i++) {
                             columnNameItems.push({id: records[i].data.id, boxLabel: records[i].data.text}); 
                        }
                    }
                }
            }),
            items: [

            ]
        }

Вот XML из запроса

<row id="PersonnelID" text="PersonnelID" />
<row id="UserID" text="UserID" />
<row id="FirstName" text="FirstName" />
<row id="LastName" text="LastName" />
<row id="MiddleName" text="MiddleName" />
<row id="PreferredName" text="PreferredName" />
<row id="HomePhone" text="HomePhone" />
<row id="WorkEmail" text="WorkEmail" />
<row id="bActing" text="bActing" />
<row id="HomeAddress" text="HomeAddress" />
<row id="GSLevel" text="GSLevel" />

1 Ответ

0 голосов
/ 30 ноября 2018

Вот что сработало для меня. Я ссылался на группу флажков по идентификатору, поскольку я запускал код из хранилища, затем просматривал записи и использовал checkboxgroup.add для заполнения группы флажков

{
            xtype       : 'checkboxgroup',
            fieldLabel  : 'Column Names',
            id          : 'chkColumnNames',
            itemId      : 'chkColumnNames',
            cls         : 'x-check-group-alt',
            // Distribute controls across 5 even columns, filling each row
            // from left to right before starting the next row
            columns: 5,
            store          : Ext.create('Ext.data.Store', {
                model    : 'Personnel.ART.String.ChoiceList',       
                autoLoad : true,
                sorters: [{
                    property: 'text',
                    direction: 'ASC'
                }],
                proxy    : {
                    type     : 'ajax',
                    url      : ICWF.portal.path + 'ICWFDBService.asmx/jsonSQLActions',
                    actionMethods : {read : 'POST'},
                    extraParams : {
                        AppAcronym      : ICWF.application.acronym, 
                        WFAcronym       : ICWF.workflow.acronym,
                        Process_id      : -1,
                        ActionName      : 'ART.SELECT.ADHOC.COMBINED_PERSONNEL.COLUMN.NAMES',
                        suppressLog     : true,
                        tokenProcessing : 'False'
                    },
                    reader   : {type : 'xml', record : 'row'}
                },
                listeners      : {
                    load: function(store, records, successful) {
                    var checkboxgroup = Ext.getCmp('chkColumnNames');

                        for(var i = 0; i < records.length; i++) {
                             //ICWF.reports.itemArray.push({id: records[i].data.id, boxLabel: records[i].data.text});
                              checkboxgroup.add({
                                xtype: 'checkbox',
                                inputValue: records[i].data.id,
                                boxLabel: records[i].data.text,
                                //checked: rec.get(cField),
                                //name: 'fName'
                            });
                        }
                        debugger;
                    }
                }
            }),
            items: []
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...