extjs 给下拉框设置数据源问题

设置数据源后,给该下拉框赋值x,结果显示出来的是x(数据源的key,而不是value),如果我在代码中间加一条alert(),则结果显示出来是y(数据源的key所对应的v... 设置数据源后,给该下拉框赋值x,结果显示出来的是x(数据源的key,而不是value),如果我在代码中间加一条alert(),则结果显示出来是y(数据源的key所对应的value),描述不清,请看图,代码如下
if(stlmType==4)//周结
{
feeForm.getForm().findField('openStlnod').enable();
//调用DWR获得数据源 周日0 ,周一~周六:1~6
SelectOptionsDWR.getComboData('OPEN_STLNO',function(ret) {
settleTempStore.loadData(Ext.decode(ret));
});
//alert();
Ext.getCmp('openStlnod').setValue(stlmDate);
}
展开
 我来答
KU丶雨
2012-11-13 · TA获得超过532个赞
知道小有建树答主
回答量:214
采纳率:100%
帮助的人:348万
展开全部
异步加载导致。
你在没有加alert()前,数据源尚未加载完成,你就进行赋值了。所以只会显示key,而不会是value。
你的alert(),是赋值延后了,数据已经加载完成,所以可以了。

解决思路:你要在数据源加载完成后在进行赋值。——用回调函数callback吧

我的代码(可能麻烦,不过你这个情况我这样解决):
以下代码加在你创建settleTempStore后。

settleTempStore.on('load',function(){Ext.getCmp('openStlnod').setValue(Ext.getCmp('openStlnod').getValue())});

可能标点会不会不匹配,直接打没校验过,你直接调整下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式