`
liuye066
  • 浏览: 266392 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

Ext3.0学习笔记-Ext.widgets-form(下)ComboBox,TimeField,DateField,TriggerField,TextArea

    博客分类:
  • ext
阅读更多

Ext.form.NumberField
继承自Ext.form.TextField,因为Ext.form.TextField虽然强大,但写起来的确还是有点麻烦,后面的类都继承自Ext.form.TextField,没有自定义的方法,属性和事件

config定义为{
    allowDecimals : Boolean    //true
    allowNegative : Boolean    //true
    baseChars : String    //'0123456789'
    decimalPrecision : Number    //精度,默认值2
    decimalSeparator : String    //小数分隔符
    fieldClass : String    //默认样式为x-form-field x-form-num-field
    maxText : String
    maxValue : Number    //默认Number.MAX_VALUE
    minText : String
    minValue : Number    //默认Number.NEGATIVE_INFINITY
    nanText : String    //NaN时显示?
}

Ext.form.TextArea

config{
    autoCreate : String/Object    //{tag: "textarea", style: "width:100px;height:60px;", autocomplete: "off"}
    growMax : Number    //1000
    growMin : Number    //60
    preventScrollbars : Boolean    //如果为真等于设置overflow: hidden,默认为false
}

Ext.form.TriggerField
这个类只要text旁边加了个下拉按钮,要自己实现onTriggerClick
config{
    autoCreate : String/Object,    //{tag: "input", type: "text", size: "16", autocomplete: "off"}
    hideTrigger : Boolean        //隐藏trigger,就是右边的那个下拉选择框
    triggerClass : String

}
事件
onTriggerClick( EventObject e ) : void


Ext.form.DateField
继承自TriggerField,用于日期选择

config{
    altFormats : String        //转换用户输入到日期时的格式,默认'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d'
    autoCreate : String/Object    //{tag: "input", type: "text", size: "10", autocomplete: "off"}
    disabledDates : Array        //禁止选择的日期:例 ["^03","04/../2006","09/16/2003"],不让选3月,2006年4月,2003年9月16
    disabledDatesText : String    //不让选总得给个理由吧
    disabledDays : Array    //不让选星期几,例[0,6],不让选周六,周日
    disabledDaysText : String    //周日要休息,这就是理由
    format : String    //显示时的格式
    invalidText : String    //验证非法时的提示
    maxText : String
    maxValue : Date/String
    minText : String
    minValue : Date/String
    triggerClass : String
}

方法,除了构造,多了两个顾名思义的方法
DateField( Object config )
getValue() : Date
setValue( String/Date date ) : void



Ext.form.ComboBox
config{
    allQuery : String        //''
    autoCreate : Boolean/Object    //{tag: "input", type: "text", size: "24", autocomplete: "off"}
    displayField : String    //显示字段
    editable : Boolean        //true当然就是combobox了,如果不可编辑就是一个select了
    forceSelection : Boolean
    handleHeight : Number    //如果resiable为真时,设置
    hiddenName : String
    lazyInit : Boolean    //除非得到焦点才开始初始化列表,默认为真
    lazyRender : Boolean    //除非请求,才开始输出,默认为假
    listAlign : String    //对齐方式,参见Ext.Element.alignTo,默认为'tl-bl'
    listClass : String
    listWidth : Number
    loadingText : String    //仅当mode = 'remote'时调用数据时显示的文本
    maxHeight : Number        //300
    minChars : Number        //最少输入多少个字开始响应,远程时默认为4,本地为0,如果不可编辑则此值无效
    minListWidth : Number
    mode : String    //可选值local/remote之一,从本地还是远程取数据
    pageSize : Number    //在远程模式下,如果此值大于0会在底部显示一个翻页工具条
    queryDelay : Number    //查询延时,远程默认为500,本地10
    queryParam : String    //查询参数,默认为query
    resizable : Boolean
    selectOnFocus : Boolean
    selectedClass : String
    shadow : Boolean/String    //True或"sides"为默认风格, "frame" for 4-way shadow, and "drop" for bottom-right
    store : Ext.data.Store
    title : String
    transform : Mixed    //对应一个select元素,可以将select转为combobox对象
    triggerAction : String    //点击按钮时的动作.默认为query
    triggerClass : String
    typeAhead : Boolean        //false
    typeAheadDelay : Number    //250
    valueField : String
    valueNotFoundText : String    //值不存在时的提示信息
}

属性
view : Ext.DataView

方法
ComboBox( Object config )
构造

clearValue() : void
清除所有文本/值对

collapse() : void
expand() : void
收起/展开下拉列表

doQuery( String query, Boolean forceAll ) : void
执行查询

getValue() : String
选择当前字段的值

isExpanded() : void
下拉列表是展开的?

select( Number index, Boolean scrollIntoView ) : void
选中第index列表项

selectByValue( String value, Boolean scrollIntoView ) : Boolean
选中值为value的列表项

setEditable( Boolean value ) : void
设editable属性为value

setValue( String value ) : void
设置当前值为

事件
beforequery : ( Object queryEvent )
beforeselect : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )
collapse : ( Ext.form.ComboBox combo )
expand : ( Ext.form.ComboBox combo )
select : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )


Ext.form.TimeField
继承自combobox,用于选择时间
config{
    altFormats : String    //
    format : String
    increment : Number    //时间增长间隔,默认15
    invalidText : String
    maxText : String
    maxValue : Date/String
    minText : String
    minValue : Date/String
}

总的来说Ext.form对input type='text' select 这样的输入标签都有对应的类,并对有些标签做了简单的扩展,当然很重要的一点,漂亮多了,vtype属性也方便了处理,建议有兴趣的同胞对Ext.form.VTypes和Ext.form.HtmlEditor做一些扩展
form中还有两个类,比如下例中的FormPanel和FieldSet,
都继承自panel,所以会放在panel中解释

综合示例
Ext.QuickTips.init();
  
    var arr=[ [1, '本.拉登'], [2, '笨.拉登'],[3, '笨.拉灯'] ];
    var reader = new Ext.data.ArrayReader(
     {id: 0},
   [
      {name: 'value'},       
      {name: 'key'}  
    ]);
  
    var store=new Ext.data.Store( {
      reader:reader
   });
   store.loadData(arr);
  
    var htmleditor=new Ext.form.HtmlEditor( {
        fieldLabel:'htmleditor',
        width:450,
        fontFamilies:['宋体','隶书'],
        name:'editor',
        id:'editor'
    });
       var form = new Ext.FormPanel( {
        labelWidth: 75,
        url:'post.php',
        frame:true,
        width: 800,
        defaultType: 'textfield',
        items: [
            new Ext.form.Checkbox( {     //checkbox
                fieldLabel:'checkbox',
                name:'cb',
                checked:true,
                boxLabel:'checkbox'
            }),
            new Ext.form.FieldSet( { //radio
                border:false,
                title:'radio',
                items:[
                    new Ext.form.Radio( {
                        labelSeparator:'',
                        name:'radio',
                        checked:true,
                        boxLabel:'radio 1'
                    }),
                    new Ext.form.Radio( {
                        labelSeparator:'',
                        name:'radio',
                        checked:true,
                        boxLabel:'radio 2'
                    })
                ]
             }),
            new Ext.form.Hidden( {   //hidden
                name:'hidden'
            }),
          
            htmleditor,
            new Ext.form.TextField( { //text
                fieldLabel:'text',
                name:'text',
                grow:true,
                allowBlank:false,
                blankText : "这个字段最好不要为空",
                maskRe:/[a-zA-z]/gi
            }),
            new Ext.form.NumberField( { //NumberField
                allowNegative:true,
                fieldLabel:'number',
                  name:'number'
            }),
            new Ext.form.TextArea( {    //TextArea
                fieldLabel:'textarea',
                name:'textarea'
            }),
            new Ext.form.TriggerField( { //TriggerField
                fieldLabel:'TriggerField',
                name:'TriggerField'
            }),
            new Ext.form.ComboBox( { //select
                fieldLabel:'select',
                editable:false,
                triggerAction: 'all',
                valueField:'value',
                displayField:'key',
                mode: 'local',
                store:store
            }),
            new Ext.form.ComboBox( { //combobox
                fieldLabel:'ComboBox',
                displayField:'key',
                mode: 'local',
                store:store
            }),
            new Ext.form.DateField( { //DateField
                fieldLabel:'DateField',
                format:'Y-m-d',
                disabledDays:[0,6]
            }),
            new Ext.form.TimeField( {//TimeField
                fieldLabel:'TimeField',
                mode: 'local',
                increment:60
              
            })
            ]
        });
form.render(document.body);

htmleditor.setRawValue("<h1>hello world</h1>");
htmleditor.syncValue();

分享到:
评论

相关推荐

    wxPython3.0-win32-3.0.2.0-py27(32位系统安装包).zip

    1. **控件(Widgets)**: wxPython提供了一系列的控件,如按钮、文本框、列表框等,这些控件可以组合成复杂的用户界面。开发者可以通过调整控件属性来改变它们的外观和行为。 2. **布局管理器(Layout Managers)**...

    Python库 | QT-PyQt-PySide-Custom-Widgets-0.1.8.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:QT-PyQt-PySide-Custom-Widgets-0.1.8.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    jquery插件jquery-ui-1.8.2.custom.min.js

    在1.8.2这个版本中,jQuery UI包含了多个模块,如Widgets(组件)、Effects(特效)、Position(定位)和Utilities(工具函数)。Widgets是jQuery UI的核心,包括Accordion(手风琴效果)、Autocomplete(自动补全)...

    QT在线安装器qt-unified-windows-x64-4.6.0-online.exe

    这样的安装方式确保了用户始终能够得到最新的稳定版本,同时可以自定义选择需要的模块,如Qt Widgets、Qt Quick、Qt Multimedia等。 安装过程中,用户可以选择安装Qt的版本(如5.x或6.x)、编译器支持(如MinGW、...

    jquery插件jquery-ui-1.8.18.custom.min.js及css文件

    1. **Widgets**:如对话框(Dialog)、下拉菜单(Menu)、滑块(Slider)和进度条(Progressbar)等,它们提供了丰富的用户交互元素。 2. **Interactions**:如拖放(Draggable)、可连接的拖放(Droppable)、可...

    pyqt6-plugins-6.4.2.2.3-py3-none-any.whl

    pyqt6-plugins-6.4.2.2.3-py3-none-any.whl

    anaconda-widgets-21.48.22.121-3.rhelah.0.el7.centos.x86_64.rpm

    anaconda-widgets-21.48.22.121-3.rhelah.0.el7.centos.x86_64.rpm

    Python库 | jupyterlab_widgets-0.6.8-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:jupyterlab_widgets-0.6.8-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PyQt5-5.13.0-5.13.0-cp35.cp36.cp37.cp38-none-win_amd64_.rar

    1. `QtWidgets`:包含了各种基本和复杂的GUI组件,如QLabel、QPushButton、QLineEdit、QWidget等。 2. `QtGui`:提供了图像处理和图形绘制的功能,如像素操作、颜色管理、画刷和字体等。 3. `QtCore`:提供核心的...

    qt-win-opensource-4.8.5-vs2010.exe

    此外,了解Qt的模块化设计也很重要,例如Qt Widgets用于桌面应用程序,Qt Network支持网络通信,Qt Sql处理数据库操作,Qt Xml解析XML文档等。 总之,qt-win-opensource-4.8.5-vs2010.exe安装包为使用Visual Studio...

    Snipaste-2.5.6-Beta-x64.zip

    首先,我们看到的是Qt5系列的DLL文件:Qt5Gui.dll、Qt5Core.dll和Qt5Widgets.dll。Qt是一个跨平台的应用程序开发框架,由Qt Company提供。Qt5Gui.dll主要负责图形用户界面(GUI)的渲染,包括2D和3D图形,字体和颜色...

    Ajax-yii2-widgets.zip

    Ajax-yii2-widgets.zip,yii2框架的小部件集合,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下更改。

    qt-everywhere-opensource-src-5.7.1.tar.gz

    这些文件包含了Qt库的完整实现,包括Qt Core、Qt GUI、Qt Widgets、Qt Network、Qt SQL、Qt Multimedia、Qt Quick等模块。开发者可以通过阅读这些源码学习Qt的工作机制,或者为特定需求进行定制开发。 为了在ARM...

    base-widgets-3.0-beta1-sources.jar

    官方版本,亲测可用

    qt-everywhere-src-5.12.12源码

    1. **src**:这是核心源代码的所在,包括各种模块如Core、Gui、Network、Sql、Widgets、 Multimedia等。每个模块都有自己的子目录,其中包含头文件、源文件、测试用例等。 2. **qtbase**:基础Qt库,包含了Qt的主要...

    qt-everywhere-opensource-src-5.7.0.tar.gz

    1. **模块化**:在5.7.0版本中,Qt进行了大规模的模块化重构,将原先庞大的库拆分为多个独立的模块,如Qt Widgets、Qt Network、Qt Sql等,开发者可以根据需求选择引入相应的模块,降低了应用的体积和依赖。...

    qtopia-free-src-2.2.0.tar.gz

    解压后,我们得到"qtopia-free-2.2.0"目录,这个目录下包含了Qtopia Free的所有源代码文件,包括头文件、C++源代码、配置脚本、文档等。开发者可以通过阅读这些源码,了解Qtopia Free的工作原理,以及如何根据需求对...

    PyPI 官网下载 | jupyterlab_widgets-0.6.14-py2.py3-none-any.whl

    资源来自pypi官网。 资源全名:jupyterlab_widgets-0.6.14-py2.py3-none-any.whl

    jquery-ui-1.10.2.custom

    2. **Widgets**:包括如对话框(Dialog)、滑块(Slider)、日期选择器(Datepicker)、进度条(Progressbar)、拖放(Draggable)、可排序(Sortable)和可堆叠(Resizable)等。这些组件极大地简化了常见的用户...

    anaconda-widgets-33.16.5.6-1.el8.aarch64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

Global site tag (gtag.js) - Google Analytics