大耳朵先生

Extjs 中combobox下拉框初始化赋值

  近日在工作中遇到一个需求,要求页面初始化的时候给dataGrid表插入一条数据。

  前端使用的是Extjs框架,dataGrid表有四列,其中三列是类型为textbox,普通文本框,另外一列类型是combobox下拉框形式,下拉框一列的数据使用的数据字典,值通过初始化加载时从数据库字典中查找得到的。由于对Extjs框架的不熟悉,以及前端水平很是有限,所以只好先求助度娘,找了好久都没有找到解决办法。只好自己尝试各种方法,好在最后问题得以解决,所以记录一下自己解决的思路和方法。

{
    field:'A',
    title:'下拉框类型',
    width:50,
    editor:{
        type:'combobox',
        options:{
            valueField:'id',
            textField:'name',
            editable:false,
            loader:queryTableData, // 查询数据字典
            ....
  }
  
  }
}

 

  得到这个需求的时候感觉很简单,在js中初始化Grid数据,使用如下

 $("#target").datagrid("loadData",[{
      field:"初始化值" // 文本框所对应的列的这样赋值没有问题
          A:"下拉框字典项的id" // 直接这么赋值,js直接报错
        ..........
    }]);

找原因:通过查找字典表的函数,下拉框初始化加载得到的是一个字典对象,该对象有id,name,order...等属性,在此处可以看到 valueField:'id',说明字典对象的id是下拉框要用到的一个属性,既然初始化时直接插入,我们就来根据id属性构造一个类似字典对象的对象出来,将该对象赋值给下拉框对应单元格,如下:

  var obj={
        id:'',
        name:''
      }
    obj.id = '想要初始赋值的值对应的字典id' 
    $("#target").datagrid("loadData",[{
      field:"初始化值" // 文本框所对应的列的这样赋值没有问题
          A:obj  
    ..........
    }])

问题解决,主要是构造一个包含id属性的类似字典对象的一个对象(上述的obj对象)。

 

posted on 2019-11-26 22:41  大耳朵先生  阅读(1680)  评论(0编辑  收藏  举报

导航