【easyUI】combobox显示对象内容

痛定思痛。 2022-06-11 01:41 258阅读 0赞

背景

在某个需求中,使用combobox下拉框来选择下级批准的公司,但公司名称字段在批准对象中的公司对象里面保存。大致结构如下:

  1. CompanyPass { Company company }
  2. Company { String name }

如果使用combobox默认函数处理,配置textField:‘name’完全不能显示公司名称

处理方法

使用combobox的formatter函数

  1. $("#id").combobox({
  2. editable:false,
  3. panelHeight:'auto',
  4. valueField : 'id',
  5. textField: 'name',
  6. url: "queryListDict.do",
  7. onLoadSuccess: function(data){
  8. //设置默认值
  9. },
  10. formatter: function(row){
  11. return '<span class="item-text">'+row.company.name+'</span>';
  12. }
  13. });

做到这个时候,下拉框中已经能显示公司名称了,效果如下:

这里写图片描述

但是,选中之后,文本框中没有数值。

分析一下我们要显示的数值内容,可以发现,我们需要显示的是一个对象中的字段,而不是普通字段,因此combobox无法自动解析。

因此,加上下面的onSelect函数代码,处理选中事件

  1. onSelect: function(row){
  2. $('#id').combobox('setText', row.company.name);
  3. }

完整代码:

  1. $("#id").combobox({
  2. editable:false,
  3. panelHeight:'auto',
  4. valueField : 'id',
  5. textField: 'code',
  6. url: "queryListDict.do",
  7. formatter: function(row){
  8. return '<span class="item-text">准入编号:'+row.code+' 劳务队:'+row.company.name+'</span>';
  9. },
  10. onSelect: function(row){
  11. $('#id').combobox('setText', row.company.name);
  12. }
  13. });

完毕!!

发表评论

表情:
评论列表 (有 0 条评论,258人围观)

还没有评论,来说两句吧...

相关阅读