1. 程式人生 > >extjs--combox動態賦值

extjs--combox動態賦值



if (typeof (InitData) == 'undefined' || InitData == null) { InitData = {}; }

InitData.Terminal = {
    terminalNos: [{id:'', name:'全部'}] //下拉框終端號
}
// 從後臺取值
InitData.init = function () {
    // 初始資料的取得
    Com.Ajax.createAjaxRequest({
        url: 'Data/GetTerminalData',
        succFn: function (obj) {
            for (var i = 0, max = obj.data.items.length; i < max; i++) {
                var ter = obj.data.items[i];
                InitData.Terminal.terminalNos.push({ id: ter.id, name: ter.name });
            }
        }
    });
}


// 資料來源

var t_store = Ext.create('Ext.data.Store', {
            fields: ['id', 'name'],
            data: InitData.Terminal.terminalNos,
            proxy: {
                type: 'memory',
                reader: {
                    type: 'json',
                    root: 'items'
                }
            }
        });
        var tercombo = Ext.create('Ext.form.ComboBox', {// 條件:終端編號
            fieldLabel: '終端編號',
            id: id_combo_terminal,
            name: 'slipInfo.Terminal',
            labelWidth: 80,
            width: 278,
            value: '', // 設定預設選中值
            store: t_store,
            editable: false, // 設定為只可選擇,不可編輯
            queryMode: 'local', // 本地資料時使用'local'
            //triggerAction: 'all',
            valueField: 'id',
            displayField: 'name'

        });

c# 後臺

List<Hashtable> list = new List<Hashtable>();
            Hashtable rtnVal = new Hashtable();
            List<string> terlist = Common.TerminalNo.TERMINAL_LIST;
            
            if(terlist != null) 
            {
                for(int i=0; i<terlist.Count(); i++) 
                {
                    Hashtable ht = new Hashtable();
                    ht["id"] = terlist[i];
                    ht["name"] = terlist[i];
                    list.Add(ht);
                }
            }
            rtnVal["totalcount"] = terlist.Count();
            rtnVal["items"] = list;
            return CreateJsonResult(true, data: rtnVal);