zoukankan      html  css  js  c++  java
  • [转]Ext ComboBox 默认选中某一项

    原文地址:http://blog.csdn.net/liuguxing/article/details/8623190

    [javascript] view plain copy
    1. 项目中经常用到选择框,需要从后台异步加载数据,可单独写一个组件进行加载  
    [javascript] view plain copy
    1. App.ComboBox = function(combo){  
    2.     var comboBox = new Ext.form.ComboBox({  
    3.         store:new Ext.data.JsonStore({    
    4.             autoLoad : false,                                   //设置为false,自己控制什么时候加载数据  
    5.             url:__ctxPath+"/code/get.do?name="+combo.codeName,    
    6.             root: 'data',               
    7.             fields :  ['name','id'],  
    8.             listeners:{  
    9.                 load:function(){  
    10.                     comboBox.setValue(comboBox.getValue());  
    11.                 }  
    12.             }  
    13.         }),  
    14.         name:combo.name,  
    15.         fieldLabel:combo.fieldLabel,  
    16.         id:combo.id,  
    17.         hiddenName:combo.hiddenName,    //动态生成一个以指定名称命名的隐藏域用来存放值数据  
    18.         displayField:'name',    
    19.         valueField :'id',    
    20.         typeAhead:false,            //值为true时在经过指定延迟(typeAheadDelay)后弹出并自动选择输入的文本,如果该文本与已知的值相匹配    
    21.         mode:'local',               //如果ComboBox读取本地数据则将值设为'local'(默认为 'remote' 表示从服务器读取数据)。如果设置为remote,并且autoLoad=true,就会加载两次  
    22.         triggerAction:'all',    
    23.         emptyText:'请选择...'  
    24.     });  
    25.     return comboBox;  
    26. };  

    编辑数据的时候需要默认选中某一项,可编写函数

    [javascript] view plain copy
    1. App.selectComboBox = function(hiddenName,comboBoxId,value){  
    [javascript] view plain copy
    1. <span style="white-space:pre">  </span>//需要根据value获取到显示值  
    2.     var combo = Ext.getCmp(comboBoxId);  
    3.     var range = combo.getStore().getRange();  
    4.     if(range != null && range.length>0){  
    5.         var displayName = value;  
    6.         for(var i=0;i<range.length;i++){  
    7.             if(value == range[i].data.id){  
    8.                 displayName = range[i].data.name;  
    9.             }  
    10.         }  
    11.     }  
    12.     combo.setValue(displayName);<span style="white-space:pre">      </span>//设置显示值<span style="white-space:pre">                </span>  
    13.     Ext.query("*[name="+hiddenName+"]")[0].value = value;<span style="white-space:pre"> </span>//设置提交到后台的值  
    14. }  

    需要注意的是,在调用App.selectComboBox之前,必须先调用comboBox.getStore().load(); 加载数据,不然上面getRange()获取不到数据。

  • 相关阅读:
    Web前端开发——HTML概述
    Web前端开发——概述
    [nowCoder] 两个不等长数组求第K大数
    [nowCoder] 两个长度相同有序数组的中位数
    [nowCoder] 完全二叉树结点数
    [nowCoder] 子数组最大乘积
    [nowCoder] 局部最小值位置
    [LeetCode] Binary Tree Right Side View
    [C/CPP系列知识] Type difference of character literals 和 bool in C and C++
    [C/CPP系列知识] C++中extern “C” name mangling -- Name Mangling and extern “C” in C++
  • 原文地址:https://www.cnblogs.com/dirgo/p/5304876.html
Copyright © 2011-2022 走看看