`
keepwork
  • 浏览: 332765 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

常用笔记--EXT方法

    博客分类:
  • EXT
 
阅读更多

  开发者博客www.developsearch.com

 

 

一、Ext

1.1  Ext.isEmpty(v, allowBlank)  //是否为空[链接]

1.2  Ext.isArray(v)     //是否为数组集合

1.3  Ext.isPrimitive(v)    //是否是基本数据类型String/Number/Boolean

1.4  Ext.isFunction(v)    //是否是函数

1.5  Ext.isNumber(v)     //是否是数字

1.6  Ext.isString(v)    //是否是字符串

1.7  Ext.isBoolean(v)   //是否是bool值

1.8  Ext.isIE/isIE6/isIE7/isIE8...  //判断浏览器

1.9  Ext.isWindows/isLinux/isMac/isAir  //判断平台(操作系统)

1.10  Ext.isDefined    //对象是否已经定义

1.11  Ext.id(el,prefix)  //返回唯一的id值,el位元素Id,prefix为前缀

1.12  Ext.urlEncode(o, pre)  //将JSON数据转换URL参数串,如{a:1,b:2} => a=1&b=2

1.13  Ext.urlDecode(string, overwrite)  //url参数列表转换成json格式数据,overwrite如果为true,则后面的同名参数值覆盖前面的同名参数值(默认为false即不覆盖而以数组形式返回)

1.15  Ext.each(array, fn, scope)  //遍历数组,例:Ext.each([1,2,3],function(value,index,a){ //index:索引号,0开始  value:当前值 a:数组引用 });

1.16  Ext.encode(o)    //将对象转换成json字符串,详细说明和用法:这里

1.17  Ext.decode(o)    //将json字符串转换成对象

1.18  Ext.combine()  //数组合并

1.19  Ext.num(value,defaultValue)  //如果是数字,直接返回本身,否则返回默认值,注意"5"这里也会返回默认值的

1.20  Ext.copyTo(dest, source, names)  //拷贝source中names属性列表至dest中

1.21  Ext.unique(arr)   //剔除数组中重复的元素,让数组每个元素保持唯一

1.22  Ext.clean(arr)     //复制数组?!

1.23  Ext.flatten(arr)   //将多维数组转换成一维数组

1.24  Ext.min(arr, comp)  //查找数组中最小的元素

1.25  Ext.max(arr, comp)  //查找数组中最大的元素

1.26  Ext.mean(arr)     //计算数组元素平均值(总和除以个数)

1.27  Ext.partition(arr, truth)  //根据arr元素的bool值拆分成新的二维数组并返回

     1Ext.partition([true, false, true, true, false]); // [[true, true, true], [false, false]]

     2Ext.partition(arr,function(val){ return val == "class1" });

1.28  Ext.invoke(arr, methodName,)  //执行arr数组中对象的methodName方法,args为方法的参数,返回执行结果数组

1.29  Ext.pluck(arr, prop)  //返回数组中属性名(property name)等于prop的值的新数组     Ext.pluck(arr, "className"); => [arr1.className,arr2.className]

1.30  Ext.zip({Arrays|NodeLists},{Function}) //压缩多个数组为一个数组, Ext.zip([1,2,3],   [4,5,6]); // [[1,4],[2,5],[3,6]],支持Function自定义合并

1.31  Ext.type(object)  //返回对象的类型:string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace

 

二、Ext.util.Format

2.1  Ext.util.Format.capitalize(value);  //首字母大写

2.2  Ext.util.Format.ellipsis(value, len, word); //从字符串开始处截取len长度显示,超过部分用...表示;word为布尔值,为true时在前面截取的基础上再从' ''.''!''?'关键字处截取前面(len)ellipsis("abcde.fghijkl",10,true)返回abcde

2.3  Ext.util.Format.htmlEncode(value);   //HTML编码,将& <  >  “替换为&amp;&lt;&gt;&quot;

2.4  Ext.util.Format.htmlDecode(value);   //HTML解码,与上面相反

2.5  Ext.util.Format.trim(value);       //截取字符串左右的空格

2.6  Ext.util.Format.substr(value, start, length); //value指定的start位置开始截取length长度的子串返回

2.7  Ext.util.Format.lowercase(value);        //转换大写

2.8  Ext.util.Format.uppercase(value);       //转换小写

2.9  Ext.util.Format.stripTags(v);          //去除HTML标签:/<\/?[^>]+>/gi

2.10  Ext.util.Format.usMoney(v); //转换到'$'符号的货币形式

2.11  Ext.util.Format.date(v, format);    //格式化日期输出,format默认格式"m/d/Y"

2.12  Ext.util.Format.round(value, precision);  //四舍五入,precision指精确位数

2.13  Ext.util.Format.number(v, format);    //格式化数字显示

2.14  Ext.util.Format.nl2br(value); //将字符串中的'\n'替换成'<br />'

2.15  Ext.util.Format.fileSize(value);  //将字节数转成更大的单位KBMB显示,fileSize(1024) = 1KB

2.16  Ext.util.Format.defaultValue(value, defaultValue);  //如果value未定义或为空字符串则返回defaultValue

2.17  Ext.util.Format.stripScripts(v);   //去除脚本标签

2.18  Ext.util.Format.undef(value);    //如果value未定义,返回空字符串,反之返回value本身

 

三、扩展JS原有对象

3.1  String

3.1.1  .format(format)  //和C#里面是一样的用法

3.1.2  .toggle(value, other)  //交换值,如果当前值等于value,则被赋值other

3.2  Array

3.2.1  .indexOf(o)  //返回元素o在数组ArrayObject中的位置,找不到返回-1

3.2.2  .remove(o)  //从数组ArrayObject删除元素o

3.3  Function

3.3.1  .createInterceptor(fcn, scope)  //创建阻断方法,如果fcn返回false,原方法将不会被执行,参见这里

3.3.2  .createCallback()   //创建回调,以无参的函数作为参数,但是现有的方 法已经具有了参数,如果直接写上可以用这个来创建一个回调,类似于function(){ //实际的带参调用 } ,见这里1、这里2

3.3.3  .createDelegate(obj, args, appendArgs) //创建委托,与上面相比,自己可以访问obj中的属性和方法,见这里

3.3.4  .defer(millis, obj, args, appendArgs) //定时执行,隔millis毫秒后执行原方法,参见这里

3.3.5  .createSequence(fcn, scope)  //Ext-more.js中,创建组合方法,执行原方法+fcn,参见这里

 

四、 其他

4.1  表单

4.1.1  一次取得表单所有的表单元素key/value集合

form1.form.getValues()  //form1Ext.FormPanel,例如:

          //注意

          var conn = new Ext.data.Connection();

             conn.request({

                url: 'submit.aspx?method=Submit4',

                //此处与params对应,如果为POST,则服务器端从Request.Form中可以取得到数据,反之从QueryString中取数据

                method: 'POST',//GET

                params:form1.form.getValues(),

                success: function(response, opts) {

                     MsgInfo(response.responseText);

                }

              });

form1.form.setValues(values)     //form1.form.setValues({id:1,name:'aabbcc'}) 赋值

4.1.2  表单元素取值赋值一次取得

4.1.2.1  form1.form.findField('TextBox').getValue()

4.1.2.2  form1.form.getValues().TextBox

4.1.2.3  form1.form.getFieldValues().TextBox

4.2  切换皮肤

Ext.util.CSS.swapStyleSheet("theme", "resources/css/ext/xtheme-orange.css"); //注意路径

 

 

 

 

 

 

 

1指定验证的正则表达式,regexText指定验证不通过时的提示信息:

items:{

id:”ipAddress”,

name:”ipAddress”,

xtype:’textfield’,

fieldLabel:’IP地址’,

allowBlank:true,//不允许为空

regex:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,

regexText:’必须是合适的IP地址’,

anchor:’90%’

}

当使用的为非ip地址时,在错误提示信息中会提示regexText的值:’必须是合适的IP地址’。

 

2使用Extjs内置属性进行验证

Extjs内置allowBlank,maxlength,minlength等属性,可以对输入内容进行限制,如果不符合,会生成错误提示。

如上一段代码中的allowBlank设置为false,则当输入内容为空时会生成错误提示。

var form1 = new Ext.form.FormPanel({

width:350,

renderTo:”form1″,

title:”FormPanel”,

defaults:{xtype:”textfield”,inputType:”password”},

items:[

{

fieldLabel:"不能为空",

allowBlank:false, //不允许为空

blankText:"不能为空", //错误提示信息,默认为This field is required!

id:"blanktest",

}]

});

 

 

3使用Vtype进行验证

Extjs内置了四种验证方式,如下:

//form验证中vtype的默认支持类型

1.alpha   //只能输入字母,无法输入其他(如数字,特殊符号等)

2.alphanum   //只能输入字母和数字,无法输入其他

3.email   //email验证,要求的格式是”langsin@gmail.com”

4.url   //url格式验证,要求的格式是http://www.langsin.com

items:{

id:” email”,

name:”ipAddress”,

xtype:’textfield’,

fieldLabel:’email地址’,

allowBlank:true,//不允许为空

vtype:”email”,

vtypeText:'不是有效的邮箱地址′,

anchor:’90%’

}

当输入的内容不是正确的email地址时,会生成错误提示信息

 

4自定义Vtype扩展验证

简单定义函数

自定义Vtype时,实际使用js语言,因此此部分是最大最广泛的,可以使用语言的任何特性。

首先要扩展Ext.form.VTypes,然后在使用时调用扩展方法。如下:

Ext.apply(Ext.form.VTypes,

{

integer : function(val, field)

{

var exp = /^([1-9]\d{0,7}|0)$/;

return val.match(exp);

},

integerText : ‘您输入的必须为数字!’,

其中val为文体框中的值,field 为文本框所在的组件;

integer为定义的验证方法,integerText为默认的提示信息,在调用时可以通过指定vtypeText来覆盖此定义。

 

定义验证函数及提示信息

Ext.apply(Ext.form.VTypes,

{

integer : function(val, field)

{

var exp = /^([1-9]\d{0,7}|0)$/;

field.vtypeText = ‘您输入的必须为数字!’;//此处输入其他提示信息

return val.match(exp);

},

此处指定的vtypeText值是动态运行是设置的,会覆盖调用时指定的vtypeText值

 

定义传值对象及组合验证

在ext的vtype中指定的方法是可以传入自定义参数。如下定义的验证方法:

Ext.apply(Ext.form.VTypes,

{

commonValidate : function(val,field)

{

var attr = field.vlist.split(‘$’);//此处field.vlist即为定义的vlist

for(var i=0;i<attr.length;i++){

var functionName = attr[i];

if(!eval(“Ext.form.VTypes.”+functionName+”(val,field)”))

{

return eval(“Ext.form.VTypes.”+functionName+”(val,field)”);

}

}

}

return true;

}

而在调用时如下:

items:{

xtype:’textfield’,

fieldLabel:’单位名称’,

lengthRange:{min:’0′, max:’50′},// lengthRange中方法参数

vtype:’commonValidate’,//调用commonValidtate方法

vlist:”lengthRange$specialChar”,//传入方法参数

anchor:’90%’

}

如上调用,vlist为自定义的属性值(js语法决定可以直接在类中增加属性),在vtype方法中通过field.vlist来获取传入值。

而lengthRange方法又通过获取lengthRange中的值来获取参数

lengthRange : function(val, field)

{

var minLength = 0;

var maxLength = 100;

if (field.lengthRange)

{

minLength = field.lengthRange.min;

maxLength = field.lengthRange.max;

}

if (val.length < minLength || val.length > maxLength)

{

//定义此输入框的提示信息

if(minLength == 0)

{

field.vtypeText= “您输入的长度必须小于” + maxLength + “!”;

}

else

{

field.vtypeText= “您输入的长度必须在” + minLength + “到” + maxLength + “之间!”;

}

return false;

}

return true;

},

参考

{

xtype : “textfield”,

name : ‘UserName’,

id: ‘UserName’,

allowBlank : false,

blankText : ‘注册用户名不能为空’,

regex : /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,11}$/,

regexText : ‘用户名不合法(必须以字母开头,长度6-12)!’,//验证错误之后的提示信息

fieldLabel : ‘登录名’,

emptyText : ‘填写用户名’,

invalidText : ‘用户名已经被注册!’,

width : 250,

validationEvent : ‘blur’,

validator : function(val) {

Ext.Ajax.request({

url : ‘check.do?name=’+ val,

method : ‘post’,

success : function(response,options)

{

var res = Ext.util.JSON.decode(response.responseText);

return (res.success);

}

})

}

}

 

 

 

 

 

 

 

ExtJs4 读取XML文件时字段和根名都要区分大小写

    Ext.define('MyData',{

        extend: 'Ext.data.Model',

        fields: [{ name:'Job_id', mapping: 'Job_id'}

        ,'Job_desc'

        ,'Min_lvl'

        ,'Max_lvl'

        ]

    });

           

var store = Ext.create('Ext.data.Store', {

                storeId: 'DataStore',

                autoLoad: true,

                model: 'MyData',

                proxy: {

                    type: 'ajax',

                    url: 'MyXmlData.xml',   //'GetExtjsData.aspx?parm=List',     

                    reader: {

                        type: 'xml',

                        root: 'dataset',

                        record: 'record'

                    }

                }

});

 

xml文件格式:多记录时要加根目录‘dataset’

<?xml version='1.0' encoding='utf-8'?>

<dataset>

     <record>

            <Job_id>1</Job_id>

            <Job_desc>name1</Job_desc>

            <Min_lvl>23</Min_lvl>

            <Max_lvl>33</Max_lvl>

    </record>

  <record>

    <Job_id>2</Job_id>

    <Job_desc>name1</Job_desc>

    <Min_lvl>23</Min_lvl>

    <Max_lvl>33</Max_lvl>

  </record>

</dataset>

 

 

 

 

 

 

1、Grid数据刷新

    a、直接刷新,获取gridstore后,调用storereload()方法;

    b、修改Grid数据来源,修改列表(grid)store的加载url     

        grid.getStore().proxy.conn.url = url;   

        grid.getStore().reload(); 

 

2、以相对页面或框架设置Grid控件宽度或高度

    假如有GridPanel控件句柄为grid,则设置相对高度或宽度为:

        grid.setHeight(document.body.clientHeight - 10); 

        grid.setWidth(document.body.clientWidth- 10); 

    

        grid.setHeight(document.body.clientHeight * 0.8); 

        grid.setHeight(document.body.clientWidth * 0.8); 

    这个也适合其他的控件,如paneltabPanel

 

3、Ext.data.Store里baseParams与Store.load({params:{}})的区别

    baseParams里的参数是一直存在的,而params里的参数,只有load时才会传递过去,当调用reload时参数不会再传过去。也即是“一次性”的。

分享到:
评论

相关推荐

    Openwrt学习笔记-通用固件-make-menuconfig配置.pdf

    OpenWrt的学习笔记主要涵盖了对通用固件的make-menuconfig配置方法。 make-menuconfig是一个用于配置OpenWrt固件的工具,它提供了一个基于文本的菜单界面,允许用户选择需要编译进固件的组件和功能。在OpenWrt的...

    常用dos命令-笔记

    使用方法为`cd 目录路径`。如果想要返回上一级目录,则可以使用`cd ..`。 3. **`ren`**:重命名文件或目录。语法为`ren "旧名称" "新名称"`。 4. **`copy`**:复制文件到同一目录或其他目录。语法为`copy 源文件 ...

    ExtJS4中文教程2 开发笔记 chm

    11条jquery常用技巧和方法整理列表 8个超棒的学习jQuery的网站 JQuery 1.5 getJSON 的使用 JQuery AJAX提交中文乱码的解决方案 Jquery css函数用法 JQuery中getJSON的使用方法 Jquery中显示隐藏的实现代码分析 ...

    ext常用注释

    使用 `Ext.Ajax.request` 方法可以轻松发送Ajax请求,并处理服务器响应。例如,获取当前登录用户的信息: ```javascript Ext.Ajax.request({ url: portalFramePath + 'personManage.do?method=getCurrentUser', ...

    EXT_JS实用开发指南_个人整理笔记.docx

    1. **引入EXT_JS库**:在使用EXT_JS开发时,首先需要在HTML页面中引入EXT_JS的CSS样式文件和JavaScript库文件,例如`extjs/resources/css/ext-all.css`、`extjs/adapter/ext/ext-base.js`和`extjs/ext-all.js`。...

    IRUN读书笔记

    IRUN读书笔记 IRUN是一个综合工具,集成了多个编译器、仿真器和Debug工具,能够对数字电路进行编译、仿真和调试。下面是IRUN的详细介绍和常用选项。 一、IRUN的执行过程 IRUN的执行过程可以分为三个阶段: 1. ...

    ext 学习笔记

    在Ext JS中,组合框(`combo`)是一种常用的组件,用于展示下拉列表。在配置组合框时,`xtype:"combo"`定义了组件类型,`id:"race"`为其分配了一个唯一标识符。`store:mzstore`指定了数据存储,`valueField:'id'`和`...

    Linux实战工程师视频笔记

    #### 二、系统管理常用命令 - **用户管理**: - `useradd redhat`: 创建名为redhat的新用户。 - `passwd redhat`: 设置redhat用户的密码。 - `su –`: 切换到root用户,并加载其环境变量。 - `exit`: 退出当前...

    Extjs学习笔记(-):ComboBox联动

    在EXTJS这个强大的JavaScript框架中,ComboBox控件是一种常用的组件,它用于实现下拉选择框的功能。本篇学习笔记将深入探讨EXTJS中ComboBox的联动效果,即一个ComboBox的选择会触发另一个ComboBox的数据更新,以此来...

    老师整理的extjs学习笔记

    &lt;script type="text/javascript" src="path/to/ext-all-debug.js"&gt; ``` **1.2 典型的 ExtJS 应用程序** 一个典型的 ExtJS 应用程序通常包含以下几个步骤: 1. **引入必要的库**: 使用 `&lt;script&gt;` 标签引入 ExtJS...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(一)

    Struts2、Spring和Hibernate是Java开发中常用的三大框架,它们各自负责Web应用的不同层面:Struts2处理表现层逻辑,Spring提供业务层管理和依赖注入,而Hibernate则负责持久化层,管理数据库交互。在本笔记中,我们...

    JVM学习笔记(一)

    ### JVM学习笔记(一) #### 一、JVM概述与工具使用 JVM(Java Virtual Machine)是...以上是JVM的基本使用技巧和常用工具的详细介绍,这些工具对于Java开发者来说非常实用,可以帮助我们更好地理解和优化JVM的性能。

    阿里P8 架构师整理Java学习笔记.pdf

    - **扩展类加载器(Extension ClassLoader)**: 负责加载&lt;JAVA_HOME&gt;\lib\ext目录中的,或者被java.ext.dirs系统变量所指定路径中的所有类库。 - **应用程序类加载器(Application ClassLoader)**: 负责加载用户类路径...

    Linux 工程师笔记

    通过以上知识点的学习,我们可以了解到Linux系统中的用户环境配置、硬件检测、服务管理、常用系统管理命令以及文件系统的维护等方面的基本操作方法和技术要点。这些知识点对于成为一名合格的Linux工程师至关重要。

    linus上课笔记.txt

    ### Linus上课笔记知识点...通过以上对Linus上课笔记内容的总结与梳理,我们可以清晰地了解到Linux操作系统的基本概念、安装配置方法、系统管理技巧以及文件系统结构等内容。这对于初学者来说是非常宝贵的学习资料。

    Extjs复习笔记(十七)-- 给grid里面的内容分组

    在EXTJS框架中,Grid组件是用于展示大量数据的常用工具,它提供了丰富的功能和高度的可定制性。本篇复习笔记将聚焦于EXTJS Grid中的一个重要特性——内容分组,帮助你深入理解如何实现这一功能。 内容分组在EXTJS ...

Global site tag (gtag.js) - Google Analytics