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對象)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM