前言

   关键字:农民伯伯,Ext. is,copyTo,flatten,unique,pluck,invoke,format,grid,Array,Function,学习,笔记,总结,技巧

   接触ExtJs的时间并不长,走了很多弯路,由于短时间内不会再使用ExtJs,所有通过这系列文章汇总、梳理和补充关于ExtJs的点滴以备忘之,系列文章大部分是收集和整理,小部分自己的心得和补充,着重实践,提供完整代码,: )

 

 

系列

  1.  ExtJs 备忘录(1)—— Form表单(一) [ 控件使用 ]  

      2.  ExtJs 备忘录(2)—— Form表单(二) [ 控件封装 ]

  3.  ExtJs 备忘录(3)—— Form表单(三) [ 数据验证 ]

  4.  ExtJs 备忘录(4)—— Form表单(四) [ 数据提交 ]

  5.  ExtJs 备忘录(5)—— GirdPanl表格(一)[ 基本用法 ]

  6.  ExtJs 备忘录(6)—— GirdPanl表格(二)[ 搜索分页 ]

  7.  ExtJs 备忘录(7)—— GirdPanl表格(三)[ 统计|查看、修改单行记录 ]

  8.  ExtJs 备忘录(8)—— 管理界面搭建和其他部分控件介绍

  9.  ExtJs 备忘录(9)—— Ext常用属性、方法小结 [系列完]

 

正文

  一、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字符串转换成对象

    [Ext-more.js]

    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.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值拆分成新的二维数组并返回 例1:Ext.partition([true, false, true, true, false]); // [[true, true, true], [false, false]] 例2:Ext.partition(arr,function(val){ return val == "class1" });

    1.28  Ext.invoke(arr, methodName,/*args...*/)  //执行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);    //将字节数转成更大的单位KB和MB显示,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(/*args...*/)   //创建回调,以无参的函数作为参数,但是现有的方法已经具有了参数,如果直接写上可以用这个来创建一个回调,类似于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()  //form1为Ext.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.  本系列Ext版本为 3.0.0

  2.  最新源代码在系列文章第八篇有下载。

  3.  关于ExtJs的优点请移步至系列文章第一篇评论中我的回答,这里就不要再讨论了 :)

 

 

文章参考和推荐

  1.  一切皆有可能关于ext的基础系列

  2.  Google:Ext API 详解

  3.  Ext研究(1)——关于Function类的一些新方法的使用

  4.  Ext.template分析

  5.  《仔仔细细分析Ext》 Ext对Function类的扩展

 

 

结束语

  建议多看看源码和源码分析的文章,欢迎交流、补充 :)