我写了一个下拉框远程获取数据 ,无法显示,显示的数目是对的,下边是有6个选项,后台返回JSON是
 [JSON]{"ValueList":[["1","A型"],["2","B型"],["3","AB型"],["4","O型"],["5","其他血型"],["9","未定血型"]],"success":true}[code=JScrip]
bloodStore = Ext.extend(Ext.data.JsonStore, {
    constructor: function(cfg) {
        cfg = cfg || {};
        manageTeacherStore.superclass.constructor.call(this, Ext.apply({
            storeId: 'bloodStore',
            url: 'aaa.aspx',
            root: 'ValueList',
            autoLoad:true,
            idIndex: 1,
            fields: [
                    'bloodID',
                    'bloodField'
            ]
        }, cfg));
    }
});
new bloodStore();[/code]
[code=JScrip]
xtype: 'combo',
fieldLabel: '血型',
anchor: '100%',
store: 'bloodStore',
valueField: 'bloodID',
displayField: 'bloodField',
forceSelection : true,
triggerAction: 'all',
mode: 'local',
style: 'border: 1px solid #B5B8C8;',
hiddenName:'qq ',
width: 130,
id: 'bloodTextField'[/code]

解决方案 »

  1.   

    fields: [ 
                        'bloodID', 
                        'bloodField' 
                ] 
    而返回的记录中没有对应起来
      

  2.   


    这个是正常的,
    [code=JScrip]MyStore = Ext.extend(Ext.data.ArrayStore, {
        constructor: function(cfg) {
            cfg = cfg || {};
            MyStore.superclass.constructor.call(this, Ext.apply({
                storeId: 'MyStore',
                autoLoad: true,
                idIndex: 1,
                data: [
                    [1,
                        '男'
                    ],
                    [2,
                        '女'
                    ]
                ],
                fields: [
                    
                     'myId',
                    'genderField'
                    
                ]
            }, cfg));
        }
    });[/code]
      

  3.   

    这个还不是一样的嘛,bloodID是对应的前边的 ,bloodField是后边的,而且效果也是有的有6条选项,我数过的
      

  4.   

    你的后台返回的格式应该是这样的: {"ValueList":[["bloodID":"1","bloodField":"A型"},{...}}
      

  5.   

    3楼那个是正确的啊,可以正常获取。还有如果又返回{"ValueList":[["bloodID":"1","bloodField":"A型"},{...}} 这种格式,Store应该怎么写。
      

  6.   

    [code=JScrip] fields: [
                    {
                        name: 'numberField',
                        mapping: 'UID'
                    }
                ][/code]这样写对不对
      

  7.   

    mode: 'local', 你远程获取,应该用mode:"remote"吧???
      

  8.   


    这个据说是EXT BUG ,remote无法获取到数据的。
      

  9.   


    var deptStoreMaint = new Ext.data.Store({
    url : 'XX!findXXX.action',
    reader : new Ext.data.JsonReader({
    root : 'root'
    }, [{ name : 'bloodID', type : 'string' },
    { name : 'bloodField', type : 'string' }]
    )
    });另外,你说 remote 无法取到数据 ? 你用的哪个版本? 应该是不可能, 我用的 3.2.1 没有这个问题
      

  10.   


    关于EXTJS的COMBO组件,我是恨之入骨,就遇到三次了,不过最后我都自己解决了!
    第一次,版本问题,配置属性在旧版本中是一种效果,在新版本中文档中没有写出来,但源码里面有,而且效果变得不一样了!
    第二次,是由于EXTJS的COMBO远程调用数据的时候如果用POST方法,服务器拒绝提供数据!只能用GET,原因不详!
    第三次,是在EXTJS菜单中加入COMBO时候,下拉框被菜单栏揭盖了,官方提供的解决方法竟然是错!!!自己调试源码解决!
      

  11.   


    你用GET方法尝试一下!,STORE缺省是用POST方法,POST方法好像在没有传入参数的情况下,服务器会抛弃请求!
      

  12.   

    谢谢了,我使用的local数据出来了,remote昨天没有出来,今天没有再试,谢谢各位,
    问题解决了,返回的数据格式不对,因为又减少对数据库的操作,一次性把所有的通用字段都取出来了,然后进行过滤的时候,把MAP给弄成LIST了,没有注意,导致JSON在自动装配的时候,返回去的格式不正确,最终导致问题。顺便说下,因为我直接写      data: [ [1,  '男' ],  [2, '女'  ] ]  是对的,给我造成了一定的误区,认为远程获取的数据也应该是这个格式,然而事实上这种格式是错误的,需要返回{"ValueList":[["bloodID":"1","bloodField":"A型"},{...}}。谢谢各位。
    非常感谢。