zoukankan      html  css  js  c++  java
  • Extjs 中combobox下拉框初始化赋值

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

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

    {
        field:'A',
        title:'下拉框类型',
        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对象)。

  • 相关阅读:
    day25 初始面向对象
    JavaScript中的apply()和call()
    JavaScript中的arguments详解
    测试使用MarkDown在博客园发布博客
    《Spring实战》 1-2
    总结: 《jQuery基础教程》 5-完结
    总结: 《jQuery基础教程》 1-4章
    做个计划
    Nginx与tomcat组合的简单使用
    利用 Dijit 组件框架打造丰富的用户界面
  • 原文地址:https://www.cnblogs.com/niew/p/11938982.html
Copyright © 2011-2022 走看看