A N
A N

Reputation: 404

Dojo ComboBox not getting populated with data

Not sure what wrong I am doing, but I have followed the apparoch explained. I think, I am also getting the objects added into store object. but the same is not getting reflected on UI. the drop down is still blank. can sombody please help.

My Select box code:

<div class="ecmSearchFormInputArea">
    <table class="ecmSearchFormInputArea">
                <tr>
                    <td class="propertyRowLabel">
                        <label><span class="mandatory_red"></span>Cost Center :</label>&nbsp;

                        <select data-dojo-attach-point="costCenter" id="costCenter"
                        data-dojo-type="dijit/form/FilteringSelect" style="width: 18em;" 
                        data-dojo-attach-event="onChange:loadDocStacks">
                        </select>
                    </td>
                </tr>
            </table>                                              
         </div>

My JS

postCreate: function() {
        this.logEntry("postCreate");

        //Trying to populate Combobox
        var storeData = {
                identifier: 'costCenter',
                items: []
            }
        var jsonObj = [{
            costCenter: 'sc1'
        },
        {
            costCenter: 'sc2'
        }]

        dojo.addOnLoad(function () {
        var costCenterStore = new dojo.data.ItemFileWriteStore({ data: storeData });

        for (var i = 0; i < jsonObj.length; i++) {
            alert ("value of i = " + jsonObj[i].costCenter);
            costCenterStore.newItem(jsonObj[i]);
        }
        var serviceFilterSelect = dijit.byId('costCenter');
        alert ("serviceFilterSelect " + serviceFilterSelect);
        alert ("costCenterStore " + costCenterStore);

        serviceFilterSelect.attr('store', costCenterStore);
        });
        //Trying to populate Combobox

        this.logExit("postCreate");
    },

Alerts in the FOR loop shows correct data. Am I missing anything?

Upvotes: 0

Views: 116

Answers (1)

vivek_nk
vivek_nk

Reputation: 1600

add label attribute along with the identifier. Because that is what will be used as label to populate.

var jsonObj = [{
            costCenter: 'sc1', name: 'label1'
        },
        {
            costCenter: 'sc2', name: 'label2'
        }];

var storeData = {
                identifier: 'costCenter', label: 'name',
                items: []
            };

Upvotes: 1

Related Questions