ExtJs学习笔记之ComboBox组件

ComboBox组件

(1)ComboBox控件支持自动完成、远程加载、和许多其他特性。

(2)ComboBox就像是传统的HTML文本 <input> 域和 <select> 域的综合; 用户可以自由的在域中键入,或从下拉选择列表中选择值。 默认用户可以输入认可值,即使它没有出现在选择列表中; 设    置forceSelection为“true”,以阻止自由格式的值,并将其限制在列表中的项。

(3)选择列表中的项是从任何Ext.data.Store(包括远程store)填充。 store中的数据项被分别映射在每个选项的显示文本和隐藏值,通过valueFielddisplayField配置。

(4)如果store非远程,例如:仅依靠本地数据并从前端被加载,应该确保设置queryMode为“‘local‘”, 因为这样会给用户提高相应。

1、示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="../ext-js-4.2.1/resources/css/ext-all.css" />
<script type="text/javascript" src="../ext-js-4.2.1/ext-all.js"></script>
<script type="text/javascript" src="../ext-js-4.2.1/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript">
    Ext.onReady(function() {
        //创建数组数据源
        var combostore = new Ext.data.ArrayStore({
            fields : [‘id‘,‘name‘],
            data : [[1,‘java‘],[2,‘android‘],[3,‘ios‘]]
        });
        //创建Combobox
        var combobox = new Ext.form.ComboBox({
            fieldLabel : ‘软件开发‘,
            store : combostore,
            displayField : ‘name‘,
            labelAlign : ‘right‘,
            valueField : ‘id‘,
            triggerAction : ‘all‘,
            emptyText : ‘请选择‘,
            allowBlank : false,
            blankText : ‘请选择你的兴趣爱好‘,
            editable : false,
            model : ‘local‘
        });
        combobox.on(‘select‘,function(){
            alert(combobox.getRawValue());
        });

        var form = new Ext.form.FormPanel({
            frame : true,
            title : ‘表单标题‘,
            style : ‘margin:10px‘,
//             draggable : true,        //可拖拽
            html : ‘<div style ="padding:10px">这里是表单内容</div>‘,
            items : [combobox]
        });

        var win = new Ext.Window({
            title : ‘窗体window‘,
            width : 500,
            height : 200,
            draggable : true,
            html : ‘<div>这里是窗体的内容</div>‘,
            resizable : true,
            modal : true,
            closable : true,
            maximizable : true,
            minimizable : true,
            items : form
        });
        win.show();
        });
</script>
</head>
<body>
 <!--
     说明:
     (1)var combostore = new Ext.data.ArrayStore():创建一个新的数组数据源。
     (2)fields: [‘id‘, ‘name‘]:数据源包含两列,列名分别为‘id‘,‘name‘。
     (3)data: [[1,‘java‘],[2,‘android‘],[3,‘ios‘]]:数据源对应的数据,例:id:1,name:java。
     (4)var combobox = new Ext.form.ComboBox():创建一个新的下拉列表。
     (5)store: combostore:数据源为上面创建的数据源,这个属性是combobox的必需属性。
     (6)displayField: ‘name‘,valueField: ‘id‘:combobox对应数据源的显示列与值列,这两个属性也是必须的。
     (7)mode: ‘local‘:指定数据源为本地数据源,如果是本地创建的数据源,该属性也是必须的,如果数据源来自于服务器,
         设置为‘remote‘表示数据源来自于服务器,关于服务器交互后面我们会讲解。
     (8)triggerAction: ‘all‘:请设置为”all”,否则默认 为”query”的情况下,你选择某个值后,再此下拉时,只出现匹配选项,
         如果设为all的话,每次下拉均显示全部选项。
     (9)editable: false:默认情况下,combobox的内容是可以编辑的,该属性设置为false,
         使下拉列表只能选择不能编辑。
     (10)combobox.on(‘select‘, function () {alert(combobox.getRawValue());}):选择时alert出下拉列表的显示值。
 -->
</body>
</html>

2、效果图:

3、常用属性及方法:

(1)属性:

  1.valueField:"字符型",value值字段
  2.displayField:"字符型",显示文本字段
  3.editable:false//false则不可编辑,默认为 true
  4.triggerAction:”all”//请设置为”all”,否则默认 为”query”的情况下,你选择某个值后,再此下拉时,只出现匹配选项,如果设为”all”的话,每次下拉均显示全部选项
  5.hiddenName:string //真正提交时此combo的name,请一定要注意。
  6.typeAhead:true,//延时查询,与下面的参数配合
  7.typeAheadDelay:3000,//默认250

(2)方法:

Ext.form.field.ComboBox

select( Object r ):通过Model或键值查找项目

时间: 2024-10-12 00:33:14

ExtJs学习笔记之ComboBox组件的相关文章

ExtJs学习笔记之Button组件

按钮Button组件 可以使用该组件的创建简单的按钮. 可以自定义属性包括 aligned icons, dropdown menus, tooltips 和 sizing options. 当出发点击按钮时执行handler 内部的代码, 或用来 listeners(监听)一些事件,比如 mouseover. 范例:: 1.示例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8">

ExtJs学习笔记之FormPanel组件

FormPanel组件 FormPanel 为 form 表单提供了一个标准的容器. 本质上还是一个标准的 Ext.panel.Panel, 只是自动创建了一个 BasicForm 来管理所有添加到 Panel中的Ext.form.field.Field 对象. 可以快捷方便地进行 配置以及处理 BasicForm 和 表单域. 1.示例: 在window窗体中添加一个FormPanel组件 <!DOCTYPE html> <html> <head> <meta

ExtJs学习笔记之Window组件

Window窗体组件 window是一个指定的打算作为一个应用程序窗口的面板,默认窗口是浮动的,resizable, 并且draggable,默认的,窗体靠document.body呈现. 1.示例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <link rel="sty

[ExtJS学习笔记]第七节 Extjs的组件components及其模板事件方法学习

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38487519 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源  Sencha Cmd官方网站: http://ww

[ExtJS学习笔记]第八节 Extjs的Ext.toolbar.Toolbar工具条组件及其应用

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38515499 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- Ext JS API: http://docs.sencha.

[ExtJS学习笔记]第十节 Extjs5新增特性之ViewModel和DataBinding

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38612721 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源:http://docs.sencha.com/ext

[ExtJS学习笔记]第九节 Extjs5的mvc与mvvm框架结构简介

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38537431 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源:http://docs.sencha.com/ext

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa