我写了一个下拉框远程获取数据 ,无法显示,显示的数目是对的,下边是有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]
[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]
解决方案 »
- 新人请教大神指导,这随滚动条移动的图层的代码哪错了?
- 梅花雪树控件 树展开问题
- JS拖拽问题
- 关于简单的js运算符问题
- 当点击连接时,背景<td background="../images/images_dh1_6.gif" >变成另一个图片的js怎么写?
- 如何在窗口关闭时候写程序
- 请问能不能用在一个网页中的iframe框里取得其中网页里的form表单里的值
- 哪下情况
- 关于回车的处理……?type=hidden中的????
- asp ,js,htm,vbs等通过script encoder 加密只后,能解密吗?
- 我写的前台div排序大家看看那里出错了,我怎么都找不到哪里有问题,要用jquery的
- 请问一个后台主页面常见的功能如何实现?
'bloodID',
'bloodField'
]
而返回的记录中没有对应起来
这个是正常的,
[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]
{
name: 'numberField',
mapping: 'UID'
}
][/code]这样写对不对
这个据说是EXT BUG ,remote无法获取到数据的。
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 没有这个问题
关于EXTJS的COMBO组件,我是恨之入骨,就遇到三次了,不过最后我都自己解决了!
第一次,版本问题,配置属性在旧版本中是一种效果,在新版本中文档中没有写出来,但源码里面有,而且效果变得不一样了!
第二次,是由于EXTJS的COMBO远程调用数据的时候如果用POST方法,服务器拒绝提供数据!只能用GET,原因不详!
第三次,是在EXTJS菜单中加入COMBO时候,下拉框被菜单栏揭盖了,官方提供的解决方法竟然是错!!!自己调试源码解决!
你用GET方法尝试一下!,STORE缺省是用POST方法,POST方法好像在没有传入参数的情况下,服务器会抛弃请求!
问题解决了,返回的数据格式不对,因为又减少对数据库的操作,一次性把所有的通用字段都取出来了,然后进行过滤的时候,把MAP给弄成LIST了,没有注意,导致JSON在自动装配的时候,返回去的格式不正确,最终导致问题。顺便说下,因为我直接写 data: [ [1, '男' ], [2, '女' ] ] 是对的,给我造成了一定的误区,认为远程获取的数据也应该是这个格式,然而事实上这种格式是错误的,需要返回{"ValueList":[["bloodID":"1","bloodField":"A型"},{...}}。谢谢各位。
非常感谢。