EXT 代码:
var CriticalData = [['Yes', 'Yes'], ['No', 'No'],
['Inherit Default', 'Inherit Default']];
var CheckStore = new Ext.data.SimpleStore({
fields : ['value', 'text'],
data : CheckData
});
var HWMForm = new Ext.form.FormPanel({
renderTo : 'HWMonitoring',
labelAlign : 'left',
buttonAlign : 'right',
bodyStyle : 'padding:5px',
width : 627,
id : 'HWMForm',
frame : false,
border : false,
labelWidth : 80,
reader : new Ext.data.JsonReader({
root : 'root'
}, [  {
name : 'value',
type : 'string',
mapping : 'value'
}, {
name : 'text',
type : 'string',
mapping : 'text'
} ]),
items : [{
layout : 'column',
border : false,
labelSeparator : ':',
items : [{
columnWidth : .5,
layout : 'form',
border : false,
items : [new Ext.form.ComboBox({

  mode : 'local',
fieldLabel : 'Check CPU',
id : 'HW_CPU_VALIDATE',
xtype : 'combo',
emptyText : 'Type',
editable : false,
typeAhead : true,
value : 'Inherit Default',
triggerAction : 'all',
valueField : 'value',
displayField : 'text',
store : CheckStore,
lazyRender : true
//name:"value"  //只能通过name来获取值
})]后台传入:
{"root":[{"value":"value","text":"text"}],"success":true}displayField中一直没值,只有通过combox的name属性去获取 ,求指教啊 },

解决方案 »

  1.   

    楼主加上下面2个属性看看forceSelection:true,typeAhead:true,
      

  2.   

    另外还有一个就是你的CheckStore必须在页面show之前就事先加载了,否则也不能自动根据后台数据自动选择
      

  3.   

    你说的自动选择是什么意思啊? 是要后台数据跟前台var CheckData = [['Enable', 'Enable'],  ['Disable', 'Disable'],
    ['Inherit Default', 'Inherit Default']];一样么? 为什么我name属性能获得的到呢? 这combox弄得我无语了  而且
    {"root":[{"FileSys_1":111,"dispalyValue":"Enable","HideValue":"Enable"}],"success":true}
    不能[{},{},{}]的形式,否则后面就是空的 只能去index=0的
      

  4.   

    1、combo通过设置hiddenname:"value",
    后台request.From("value")获取combo的value值2、combo通过设置name:"value",
    从后台数据库返回的JSON数据,会根据name匹配选择数据库的值
      

  5.   

    哦 ,原来不是用displayField和valueField去匹配的啊  我用ID也可以哦 它传的是display的值
      

  6.   

    我还想问下 我以这样的形式{"root":[{"FileSys_1":11111},{"HW_CPU_VALIDATE":true},{"hddcritical":true}],"success":true}从后台返回JSON对象 只能取到数组的第一个index=0
    我只能把数据全写在一个[{*****}]里面,这是为什么啊??????
      

  7.   

    JS端的代码
    reader : new Ext.data.JsonReader({
    root : 'root',
    totalProperty : 3
    }, [{
    name : 'FileSys_1',
    type : 'string' }, {
    name : 'HW_CPU_VALIDATE',
    type : 'string' }, {
    name : 'hddcritical',
    type : 'string' } ]),
      

  8.   

    你的"root"部分的数据为什么只有一列"FileSys_1":11111,至少有2列才对,一个用于display,一个用于value
      

  9.   


    给你一个store的例子var SysRoleStore=new Ext.data.Store({
        proxy:new Ext.data.HttpProxy({url:'SysUserBrowse.aspx?param=SysRole'}),
        reader:new Ext.data.JsonReader({root:'data'},["role_no","role_name"])
    });
    SysRoleStore.load();
      

  10.   

    哦 如果要与valueField和textField匹配就要这样 [{[a:a],[b:b]},{},{}]?
    我现在都用combox的ID或者name去获取了,不知道对以后会有什么影响