iteye_9116 2011-04-11 11:32
浏览 276
已采纳

Extjs comboBox 数据显示不对

因为“联系人”是根据“客户”来取得的值,当我修改时,加载的数据为ID,而不是displayField 。 这是为什么呢?
加载不了数据,也是个Bug呀?怎么弄呀?代码如下:
--js--
//联系人
var contactStore = new Ext.data.JsonStore({
// autoLoad : true,
url : _ctx.base + '/customers/exc_findContactInfoListById.action',
fields : ['contactid', 'contactname']
});

var contactCombo = new Ext.form.ComboBox({
fieldLabel : '联系人*',
name : 'CONTACTNAMEP',
store : contactStore,
displayField : 'contactname',
valueField : 'contactid',
hiddenName : 'contactid',
triggerAction : 'all',
mode : 'local',
// typeAhead :true,
allowBlank : false,
editable : false,
emptyText : '请选择',
anchor : '98%',
listeners : {
focus : function() {
var v = self.formPanel.form.findField("customername").getValue();
if (v == "") {
Ext.Msg.alert("提示信息", "请先选择客户!");
}
}
}
});

--这里是选择了客户之后加载联系人信息的部分---
contactStore.reload({
params : { CUSTOMERID : customerId}

});

图如下:

[img]http://dl.iteye.com/upload/attachment/458242/d738983b-7fab-371b-83f7-5abd05b37234.jpg[/img]

  • 写回答

1条回答 默认 最新

  • caoruitan 2011-04-26 10:00
    关注

    这是加载顺序的问题,如果先把下拉列表的所有值加载完成后,再调用setValue()把'contactid'传进去,他会根据'contactid'自动匹配'contactname'显示出来,如果是后加载的下拉列表,你可以在查询'contactid'的同时把'contactname'也查询出来,分别调用setValue和setRawValue分别把'contactid'和'contactname'传进去也是可以的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献