EXTJS怎么给combox赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXTJS怎么给combox赋值相关的知识,希望对你有一定的参考价值。

从后台获得数据然后在根据判断 0 则使combox显示运行 ,1显示停机 !

var tabForm = new Ext.FormPanel(
width:430,

height:370,
frame:true,//圆角和浅蓝色背景

title:"4号楼1层 群体控制设定",
bodyStyle:"padding:5px 5px 0",
items:[


fieldLabel: "运行/停机",
id: "onoff",
xtype: "combo",

store: [[0:运行],[1:停机]]
,

function inStart()
xmlHttp = createXMLHttpRequest();
// alert(parent.parent.parent.document.getElementById('inid').innerhtml);
// var inner_id = parent.parent.parent.document.getElementById('in_con_page').src;
var inner_id =parent.parent.parent.document.getElementById('inid').innerHTML;
if (inner_id.length >0)
var url = 'http://' + window.location.host
+ '/wems-hitachi/InnerSVGServlet?sts=get&inid='
+ inner_id;
xmlHttp.open('GET', url, true);
xmlHttp.onreadystatechange = setInnerSvg;
xmlHttp.send(null);


function setInnerSvg()

if (xmlHttp.readyState == 4)
if (xmlHttp.status == 200 || xmlHttp.status == 500)
if (Isflag)
var str = xmlHttp.responseText;
// var obj = JSON.parse(str);
var flag = true;
var obj;
try
obj = eval('(' + str + ')');
catch (e)
flag = false;

if (flag)
// 开关
if (obj.onoff == 0)
Ext.getCmp('onoff').setValue(0);
else if (obj.onoff == 1)
Ext.getCmp('onoff').setValue(0);




Ext.getCmp('singlesvgWindow').show();
//if (parent.parent.parent.document.getElementById('mainflag').innerHTML == 'inner')

//


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',  
   isplayField: '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);

参考技术A var statusCombo = Ext.create('Ext.form.ComboBox', 
width : 120,
x : 200,
y : 0,
store : [['0', '运行'], ['1', '停机']],
queryMode : 'local',
editable : false,
allowBlank : false,

);
//给下拉框赋值  :[ jiXieStore 某数据源的加载事件触发时给下拉框赋值]
jiXieStore.on("load",function()
//如果想将deptField的值默认选中,只需要setValue即可
deptField.setValue(0);

);

本回答被提问者采纳

C#comboBox控件如何使用?

想完成以下功能:
点击下拉箭头,显示如
A // 将0赋值给i
B //将1赋值给i
C //将2赋值给i
D //将3赋值给i
E //将4赋值给i
F //将5赋值给i
并且数据库操作后,可以显示相对应于i的赋值的所对应ABCDEF
请多指教

一共两种用法.

第一种是给他绑定数据源,让他数据从数据库读取:

public void fillcombo(DataSet ds, ComboBox cb, String lie, String kaishi)

    if (ds != null)  //如果数据集合有数据
    cb.DataSource = ds.Tables[0]; //数据源绑定数据表  
    cb.DisplayMember = lie;  //表中列名绑定
    cb.Text = kaishi;  //开始显示的字符串设置

第二种是直接给他添加,举例添加TreeView的节点到Combo:

foreach(TreeNode td in treeView1.Nodes)

    comboBox1.Items.Add(td.SelectNodes.Text);

参考技术A 呵呵,我的数据库软件里经常遇到这种情况,被我用非常笨的方法搞定了,和你共同向大神们学习,看看大神们有何高招,正好学学,优化一下我自己的代码。我自己的做法是在COMBOBOX的选择变更的事件中用SWITCH CASE 来给I赋值。然后在操作数据库前,定义一个变量,根据I的值,用SWITCH CASE来选择变量的值为某个字母,再写入数据库。回头,从数据库里读出哪个字母,就直接赋值给COMBOBOX就行啦。 参考技术B DataTable dt=GetDataTable("select ID,Name from A");//读取数据库获取一个数据表对象

comboBox1.ValueMember="ID";
comboBox1.DisplayMember="Name";
comboBox1.DataSource=dt;本回答被提问者和网友采纳
参考技术C int aa = "ABCDEF".IndexOf(combobox.text);
string a = "ABCDEF"[aa].ToString();
参考技术D 怎么回事,好多这种贴,爆吧么追问

是在提问呐。。。。拜托,会的说说吧

以上是关于EXTJS怎么给combox赋值的主要内容,如果未能解决你的问题,请参考以下文章

extjs中的ComboBox怎么动态赋值

ExtJS重置

C#comboBox控件如何使用?

MFC combox 多选

extjs grid 中 如何根据数据动态给checkbox赋值

extjs grid 中 如何根据数据动态给checkbox赋值