`
bianrongxin
  • 浏览: 102592 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ExtJs4 combobox默认选中值的解决方案

阅读更多

网上说的天花乱坠,各种招儿都试了,都没用,其实非常的简单,只需要将要被默认选中的combobox设置一下value即可,但是有一点是需要注意的,看代码:

 

<script type="text/javascript">
 Ext.require([
             'Ext.data.*',
             'Ext.grid.*',
             'Ext.tree.*'
         ]);
 Ext.onReady(function() {

 


  Ext.define('ctreemodel', {
   extend: 'Ext.data.Model',
   fields: [
    {name:'id', type:'string'},
    {name:'path', type:'string'},
    {name:'text', type:'string'},
    {name:'parent', type:'string'},
    {name:'levKey', type:'string'},
    {name:'leaf', type:'boolean'},
    {name:'morder', type:'string'}
   ]
  });

 

//菜单等级数据模型
  Ext.define('menuLelModel', {
   extend: 'Ext.data.Model',
   fields: [
    {name: 'levKey', type: 'string'},
    {name: 'levValue', type: 'string'}
   ]
  });
    
  var store = Ext.create('Ext.data.TreeStore', {
   model: 'ctreemodel',
   proxy:{
    type: 'ajax',
    url: basePath +'auth/menu_load.do'
   }
  });

 

//菜单等级数据集

  var levStore = Ext.create('Ext.data.Store', {
   model: 'menuLelModel',
   data:[
    {levKey: 1, levValue: '一级菜单'},
    {levKey: 2, levValue: '二级菜单'}
   ]
  });
  
  var treeGridPanel = Ext.create('Ext.tree.Panel', {
   region: 'center',
   frame: true,
   split: true,
   title: '菜单信息列表',
         width: '100%',
         height: '100%',
         scroll: 'vertical',
         renderTo: Ext.getBody(),
         collapsible: true,
         useArrows: true,
         rootVisible: false,
         store: store,
         singleExpand: false,
         tbar: [{
                text: '修改',
                id: 'update',
                iconCls: 'option',
                ref: '../removeButton',
                handler: function(){
                 var records = treeGridPanel.getView().getChecked();
                 if(records.length != 1) {
                  Ext.Msg.alert('提示', '请您选择指定的一条记录');
                  return ;
                 }

                    //如果想将coMenuLevUpdate的值默认选中,只需要setValue即可

                    //但是需要注意的是模型中levKey必须为string,如果是int要转型: Number(records[0].get("levKey"))

                    Ext.getCmp("coMenuLevUpdate").setValue(records[0].get("levKey"));
                 update_win.show();
                }
            }],
         columns: [{
             xtype: 'treecolumn', //this is so we know which column will show the tree
             width: 100,
             text: '菜单名称',
             flex: 1,
             sortable: true,
             dataIndex: 'text'
         },{
          text: '菜单url',
          width: 300,
             flex: 1,
             dataIndex: 'path',
             sortable: true
         },{
          text: '显示顺序号',
             flex: 1,
             dataIndex: 'morder',
             sortable: true
         }]
  });
  
  var update_form = new Ext.FormPanel({
            labelWidth: 170,
            labelAlign: 'left',
            frame: true,
            defaults: {
                width: 170
            },
            bodyStyle: 'padding:10px 5px 0',
            defaultType: 'textfield',
            monitorValid: true,
            items: [{
             xtype: 'combo',
    name:'menuLevUpdate',
          id : 'coMenuLevUpdate',
          width: 200,
          fieldLabel:'菜单等级',
          labelAlign: 'left',
          labelWidth: 80,
          displayField:'levValue',
          valueField:'levKey',     //注意valueField levKey是string类型(类似"1" "2"这样的字符串。)
          store: levStore,
          triggerAction:'all',
          queryMode: 'local', 
          selectOnFocus:true,
          forceSelection: true,
          allowBlank: false,
          editable: true,
          //emptyText:'请选择菜单等级',
          //blankText : '请选择菜单等级',
          typeAhead: true,
          listeners:{   
              select:function(combo, record, eOpts){
               
              }
          }
            }
],
            buttons: [{
                text: '关闭',
                iconCls: 'cancel',
                ref: '../addCancelButton',
                handler: function(){
                 update_form.getForm().reset();
                 update_win.hide();
                }
            }]
        });
  
  var update_win = new Ext.Window({
      el: 'add-win',
      title: '菜单信息添加',
      layout: 'fit',
      border: false,
      width: 350,
      height: 300,
      closable: false,
      resizable: false,
      modal: true, // 模态窗口
      items: [update_form]
  });
  
  Ext.create('Ext.container.Viewport', {
   layout: 'border', //使用border布局
   items: [treeGridPanel]
  });
 });
</script>

 

就是这么简单。

 

 

 

 

分享到:
评论

相关推荐

    extjs4 ComboBox 点击下拉框 出现grid效果

    在EXTJS4中,ComboBox是一个常用的组件,它用于创建下拉选择框,通常用于输入框的辅助选择。这个组件提供了一种用户友好的方式来从一组预定义的选项中进行选择。然而,根据你的标题和描述,你似乎遇到了一个特别的...

    extJs4 ComboBox组合框实例

    extJs4 ComboBox 代码组合框实例,ComboBox 各个主要参数详细解释

    extjs editgrid combobox 回显

    在探讨“extjs editgrid combobox 回显”这一主题时,我们主要关注的是如何在ExtJS框架下,实现编辑网格(EditGrid)中的组合框(ComboBox)的值能够正确地回显到网格中。这一功能对于那些需要用户在表单中选择数据...

    EXTJS的COMBOBOX级联实现和数据提交VALUE[文].pdf

    EXTJS的ComboBox级联实现是Web应用程序中常见的一种交互方式,尤其在数据表单中用于联动选择。在本文中,我们将深入探讨EXTJS如何实现ComboBox的级联效果,并理解其数据提交VALUE的工作原理。 首先,我们需要创建两...

    extJS4升级至extJS6.6所遇问题及解决方案

    项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议

    extjs 自动补全 模拟combobox

    EXTJS并没有直接提供一个名为"自动补全"的组件,但它可以通过模拟Combobox组件来实现这一效果。Combobox是EXTJS中的一个下拉选择框,它可以显示一个下拉列表供用户选择,同时也可以配合自动补全功能。 首先,让我们...

    extjs的ComboBox 2级联动

    ExtJS的ComboBox是一个非常强大的组件,它用于创建下拉选择框。在Web应用程序中,我们经常需要实现二级联动效果,即一个ComboBox的选择会影响另一个ComboBox的显示内容。这在数据关联和筛选场景中尤为常见,例如省份...

    Extjs4下拉树菜单ComboBoxTree支持单选和多选并且支持展开选中指定节点的通用控件

    在这个特定的情况下,我们讨论的是一个定制的下拉树菜单控件——ComboBoxTree,它在ExtJS4中实现了单选和多选功能,并且具备展开选中指定节点的能力。这个控件在实际项目中已经被广泛使用并证明了其稳定性和实用性,...

    ExtJS Combobox二级联动列子

    3. 设置联动:在一级Combobox的`select`事件中,获取选中的值,然后根据这个值动态更新二级Combobox的Store。 4. 渲染界面:将Combobox添加到面板或窗口中,展示给用户。 四、示例代码 这里我们以一个简单的省份和...

    ExtJs grid多选时获取选中的所有值

    ### ExtJs Grid 多选及获取选中值详解 #### 一、背景介绍 在Web应用开发中,ExtJs 是一款非常强大的JavaScript框架,它能够帮助开发者快速构建复杂的用户界面。其中,Grid Panel(简称 Grid)是ExtJs中最常用的一个...

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...

    Ext combobox 下拉多选框带搜索功能

    而“下拉多选框”意味着这个ComboBox支持多选模式,用户可以选择多个值而不是仅限于一个。结合“带搜索功能”的描述,我们可以推断出这是一个定制的ComboBox,它增加了实时搜索功能,用户在输入框中输入文本时,下拉...

    解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

    通过以上代码,我们就解决了EXTJS中全选后取消选中某一项时,全选框仍保持选中状态的问题。在实际开发中,可能需要根据具体项目结构和需求进行微调,但基本思路是确保事件驱动的状态同步。同时,为了提高代码可维护...

    Extjs中ComboBox加载并赋初值的实现方法

    通过上述方法,我们能够确保Extjs中ComboBox组件在加载数据后正确显示初始选中的值。这不仅可以增强界面的友好性,还可以避免因数据未及时加载而导致的程序错误。在实际应用中,合理处理异步数据加载和用户界面交互...

    extjs4 实现下拉树并支持复选

    在EXTJS4中,实现一个下拉树(Combobox Tree)并支持多选和复选功能,主要是通过自定义组件(Ext.define)来完成的。这个组件继承自EXTJS的Picker字段(Ext.form.field.Picker),并添加了树形结构和复选功能。以下...

    extjs3.x combobox智能联想

    在EXTJS 3.x版本中,Combobox是一个非常实用的组件,它提供了下拉列表功能,用户可以在输入框中输入文字,系统会根据输入内容自动进行模糊匹配,给出相关的建议选项。这种功能在数据筛选、搜索或者选择项较多时特别...

    Extjs4下拉菜单ComboBox中用Grid显示通用控件

    在EXTJS4中,`ComboBox` 是一个非常常用的组件,它提供了一个下拉选择框的功能。在某些场景下,我们可能需要在下拉菜单中展示更丰富的信息,比如表格数据,这时就可以使用 `GridComboBox`。`GridComboBox` 结合了 `...

    Extjs6中Combobox实现下拉多选

    该资源主要展示了在Extjs6中Combobox控件实现下拉选择多个数据的功能

    Extjs4---combobox省市区三级联动+struts2

    在这个特定的项目“Extjs4---combobox省市区三级联动+struts2”中,我们将探讨如何利用ExtJS 4的ComboBox组件实现省市区的三级联动效果,并结合Struts2框架进行数据交互。 首先,`ComboBox`是ExtJS中的一个组件,它...

    EXTJS 选下拉框,并取得下拉框的值

    总结一下,EXTJS中的下拉框(ComboBox)是通过`Ext.form.field.ComboBox`实现的,可以通过设置`store`、`displayField`和`valueField`来定义选项和获取选定值。使用`getValue()`方法可以获取选定的值,而`select`...

Global site tag (gtag.js) - Google Analytics