zoukankan      html  css  js  c++  java
  • Ext.widgetsform(下)ComboBox,TimeField,DateField,TriggerField,TextArea,NumberField

    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: "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',
            
    450,
            fontFamilies:[
    '宋体','隶书'],
            name:
    'editor',
            id:
    'editor'
        }
    );
           
    var form = new Ext.FormPanel({
            labelWidth: 
    75,
            url:
    'post.php',
            frame:
    true,
             
    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();
     
  • 相关阅读:
    字节序列高低端问题
    简单的进制转换
    网页中如何调用WIN本地程序
    获取CAN报文并解析
    异步通信服务选型
    PostgreSQL 更新JSON,JSONB字段
    js,Date的toJSON方法时间和当地时间不一致如何处理
    js中字符串的替换 replace方法
    百度富文本编辑器umeditor,ueditor字体修改无效的问题
    python 3 基础之类和对象的创建、面向对象的三大特性
  • 原文地址:https://www.cnblogs.com/meetrice/p/1206066.html
Copyright © 2011-2022 走看看