蜂蜜商标名字图片大全:extjs 大杂烩

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 07:03:06
2011-01-30缩略显示

表单组件_v2.2(四)

    博客分类:
  • ExtJS_3.0

1、下拉框组件支持中间模糊查询

Js代码
  1. function listener_ComboboxBeforeQuery(e){   
  2.     var combo = e.combo;    
  3.     try{       
  4.         var value = e.query;   
  5.            
  6.         combo.lastQuery = value;    
  7.         combo.store.filterBy(function(record,id){      
  8.             var text = record.get(combo.displayField);    
  9.             return (text.indexOf(value)!=-1);      
  10.         });   
  11.         combo.onLoad();   
  12.         combo.expand();   
  13.         return false;   
  14.     }catch(e){   
  15.         combo.selectedIndex = -1;   
  16.         combo.store.clearFilter();   
  17.         combo.onLoad();    
  18.         combo.expand();   
  19.         return false;     
  20.     }   
  21. }  

  

  • 15:51
  • 评论 / 浏览 (0 / 265)
  • 分类:Web前端
2010-10-07缩略显示

表单组件_v2.2(三)

    博客分类:
  • ExtJS_3.0
EXTprototype

本范例展示如何使用表单的各种组件。

下拉框组件展示了5种使用范例:普通下拉框、绑定HTML组件的下拉框、树形下拉框、分页下拉框、多选下拉框等。



  

 

Js代码
  1. Ext.onReady(function(){   
  2.     Ext.BLANK_IMAGE_URL = "/widgets/ext-2.2/resources/images/default/s.gif";    
  3.     Ext.QuickTips.init();   
  4.     Ext.form.Field.prototype.msgTarget = "qtip";   
  5.   
  6.     //component   
  7.     var hiddenField = new Ext.form.Hidden({   
  8.         name: "hiddenField",   
  9.         value: "1"  
  10.     });   
  11.   
  12.     var usernameField = new Ext.form.TextField({   
  13.         name: "username",   
  14.         fieldLabel: "用户名",   
  15.         allowBlank: true,   
  16.         blankText: "请输入用户名!"  
  17.     });   
  18.   
  19.     var pwdField = new Ext.form.TextField({   
  20.         name: "password",   
  21.         fieldLabel: "密码",   
  22.         allowBlank: true,   
  23.         blankText: "请输入密码!",   
  24.         inputType: "password"  
  25.     });   
  26.   
  27.     var ageField = new Ext.form.NumberField({   
  28.         name: "age",   
  29.         allowBlank: true,   
  30.         blankText: "请输入年龄!",   
  31.         fieldLabel: "年龄",   
  32.         allowDecimals: false,   
  33.         allowNegative: false,   
  34.         minValue: 18,   
  35.         minText: "年龄不能少于18",   
  36.         maxValue: 100,   
  37.         maxText: "年龄不能大于100"  
  38.     });   
  39.   
  40.     var love1 = new Ext.form.Checkbox({   
  41.         name: "love1",   
  42.         boxLabel: "打球",   
  43.         inputValue: "1"  
  44.     });   
  45.   
  46.     var love2 = new Ext.form.Checkbox({   
  47.         name: "love2",   
  48.         boxLabel: "游泳",   
  49.         inputValue: "2"  
  50.     });   
  51.   
  52.     var love3 = new Ext.form.Checkbox({   
  53.         name: "love3",   
  54.         boxLabel: "登山",   
  55.         inputValue: "3"  
  56.     });   
  57.   
  58.     var loveGroup = new Ext.form.CheckboxGroup({   
  59.         name: "love",   
  60.         columns: [80, 80, 1.0],   
  61.         fieldLabel: "爱好",   
  62.         items: [love1, love2, love3]   
  63.     });   
  64.   
  65.     var sex1 = new Ext.form.Radio({   
  66.         name: "sex1",   
  67.         boxLabel: "男",   
  68.         inputValue: "1"  
  69.     });   
  70.   
  71.     var sex2 = new Ext.form.Radio({   
  72.         name: "sex1",   
  73.         boxLabel: "女",   
  74.         inputValue: "0"  
  75.     });   
  76.   
  77.     var sexGroup = new Ext.form.RadioGroup({   
  78.         name: "sex",   
  79.         columns: [80, 1.0],   
  80.         fieldLabel: "性别",   
  81.         items: [sex1, sex2]   
  82.     });   
  83.   
  84.     //本地数据源的组合框   
  85.     var store = new Ext.data.SimpleStore({   
  86.         fields: ["code""name"],   
  87.         data: [   
  88.             ["1""北京"],   
  89.             ["5""上海"],   
  90.             ["4",  "广东"]   
  91.         ]   
  92.     });   
  93.     var cmbProvince = new Ext.form.ComboBox({   
  94.         id: "cmbProvince",   
  95.         hiddenName: "province.id",   
  96.         fieldLabel: "省份",   
  97.         resizable: true,   
  98.         editable: false,   
  99.         width: 100,   
  100.         emptyText: "请选择...",   
  101.         store: store,   
  102.         valueField: "code",   
  103.         displayField: "name",   
  104.         triggerAction: "all",   
  105.         mode: "local"  
  106.     });   
  107.   
  108.     //远程数据源的组合框   
  109.     var store2 = new Ext.data.SimpleStore({   
  110.         fields: ["name"],   
  111.         proxy: new Ext.data.HttpProxy({   
  112.             url: "../testForm!loadData.action"  
  113.         })   
  114.     });   
  115.   
  116.     var cmbManager = new Ext.form.ComboBox({   
  117.         hiddenName: "manager",   
  118.         fieldLabel: "经理",   
  119.         editable: false,   
  120.         triggerAction: "all",   
  121.         mode: "local",   
  122.         maxHeight: 200,   
  123.         store: new Ext.data.SimpleStore({fields:[],data:[[]]}),   
  124.         onSelect: Ext.emptyFn,   
  125.         tpl: "
"  
  •     });   
  •   
  •     var root = new Ext.tree.TreeNode({   
  •         nodeId: 1,   
  •         text: "根节点",   
  •         expanded: true  
  •     });   
  •     root.appendChild(new Ext.tree.TreeNode({nodeId:2, text:"节点A", leaf:true}));   
  •     root.appendChild(new Ext.tree.TreeNode({nodeId:3, text:"节点B", leaf:true}));   
  •   
  •     var tree = new Ext.tree.TreePanel({   
  •         root: root,   
  •         border: false,   
  •         autoHeight: true,   
  •         autoScroll: true  
  •     });   
  •   
  •     tree.on("click"function(node){      
  •         if(!node.isLeaf()) return//只能选择叶节点   
  •         //下拉框的隐藏值   
  •         if(cmbManager.hiddenField){   
  •             cmbManager.hiddenField.value = node.attributes.nodeId;   
  •         }   
  •         cmbManager.setRawValue(node.text); //下拉框的显示值   
  •         cmbManager.collapse(); //折叠下拉框   
  •     });   
  •   
  •     cmbManager.on("expand"function(){     
  •         tree.render("tree");      
  •     });    
  •   
  •     //分页远程数据源的组合框   
  •     var store3 = new Ext.data.JsonStore({   
  •         url: "../testForm!loadData3.action",   
  •         totalProperty: "totalNum",   
  •         root: "books",   
  •         fields: ["id""name"]   
  •     });   
  •     var cmbBook = new Ext.form.ComboBox({   
  •         hiddenName: "books",   
  •         fieldLabel: "书籍",   
  •         store: store3,   
  •         valueField: "name",   
  •         displayField: "name",   
  •         triggerAction: "all",   
  •         mode: "remote",   
  •         queryParam: "books",   
  •         loadingText: "正在装载数据...",   
  •         width: 180,   
  •         minChars: 1,   
  •         editable: false,   
  •         listWidth: 250,   
  •         pageSize: 3   
  •     });   
  •   
  •     //HTML标准组件   
  •     var cmbPass = new Ext.form.ComboBox({   
  •         hiddenName: "status",   
  •         fieldLabel: "是否有效",   
  •         triggerAction: "all",   
  •         editable: false,   
  •         width: 100,   
  •         transform: "isPass",   
  •         lazyRender: true  
  •     });   
  •   
  •     var cmbTimes = new Ext.form.TimeField({   
  •         hiddenName: "time",   
  •         fieldLabel: "时间",   
  •         minValue: "09:00",   
  •         minText: "所选时间应大于{0}",   
  •         maxValue: "18:00",   
  •         maxText: "所选时间应小于{0}",   
  •         format: "H时i分",   
  •         increment: 30,   
  •         invalidText: "时间格式无效!",   
  •         maxHeight: 200,   
  •         width: 100,   
  •         value: "09时00分",   
  •         editable: false  
  •     });   
  •   
  •     var cmbMonths = new Ext.ux.MultiSelectCombo({   
  •         hiddenName: "months",   
  •         fieldLabel: "月份",   
  •         maxHeight: 200,   
  •         editable: false,   
  •         store: [["201010","201010"], ["201009","201009"], ["201008","201008"], ["201007","201007"], ["201006","201006"]],   
  •         mode: "local",   
  •         width: 180,   
  •         maxItemsCount: 3,   
  •         maxItemsCountText: "最多只能选择三个选项!"  
  •     });   
  •   
  •     var cmbBirths =  new Ext.form.DateField({   
  •         name: "births",   
  •         fieldLabel: "出生日期",   
  •         disabledDays: [0,6],   
  •         disabledDaysText: "禁止选择周末!",   
  •         width: 100,   
  •         readOnly: true,   
  •         format: "Y-m-d",   
  •         invalidText: "不是有效的日期值!"  
  •     });   
  •   
  •     var fieldSet1 = new Ext.form.FieldSet({   
  •         title: "下拉框",   
  •         checkboxName: "fieldSet1",   
  •         checkboxToggle: true,   
  •         autoHeight: true,   
  •         layout: "table",   
  •         layoutConfig: {   
  •             columns: 3   
  •         },   
  •         defaults: {   
  •             style:"margin-left:8px; margin-top:3px; margin-right:8px; margin-bottom:3px; valign:top",   
  •             layout:"form",   
  •             labelAlign: "right"  
  •         },   
  •         items: [   
  •             {rowspan:1, colspan:1, items:[cmbProvince]},   
  •             {rowspan:1, colspan:1, items:[cmbManager]},   
  •             {rowspan:1, colspan:1, items:[cmbBook]},   
  •             {rowspan:1, colspan:1, items:[cmbPass]},   
  •             {rowspan:1, colspan:1, items:[cmbTimes]},   
  •             {rowspan:1, colspan:1, items:[cmbMonths]},   
  •             {rowspan:1, colspan:1, items:[cmbBirths]}]   
  •     });   
  •   
  •     var remarksField = new Ext.form.TextArea({   
  •         name: "remarks",   
  •         fieldLabel: "备注",   
  •         width: 400,   
  •         height: 80   
  •     });   
  •   
  •     var form = new Ext.form.FormPanel({   
  •         id: "frmAddUser",   
  •         title: "新增用户",   
  •         autoWidth: true,   
  •         autoHeight: true,   
  •         frame: true,   
  •         renderTo: Ext.getBody(),   
  •         labelWidth: 70,   
  •         tbar: toolbar,   
  •         items: [hiddenField, usernameField, pwdField, ageField, loveGroup, sexGroup,    
  •             fieldSet1, remarksField],   
  •         url: "../testForm!ajaxSubmitForm.action"  
  •     });   
  • });  
  •  

    • 大小: 15.1 KB
    • 查看图片附件
    • 22:21
    • 评论 / 浏览 (0 / 570)
    • 分类:Web前端
    2010-10-07缩略显示

    表单组件_v2.2(二)

      博客分类:
    • ExtJS_3.0
    EXT正则表达式J#

    1、Ext.form.Hidden

     

    2、Ext.form.Label

         配置项:

              html:

              text:

     

    3、Ext.form.TextField

         配置项:
              allowBlank:是否允许为空,默认为true
              blankText:空验证失败后显示的提示信息
              emptyText:在一个空字段中默认显示的信息
              grow:字段是否自动伸展和收缩,默认为false
              growMin:收缩的最小宽度
              growMax:伸展的最大宽度
              inputType:字段类型:默认为text
              maskRe:用于过滤不匹配字符输入的正则表达式
              maxLength:字段允许输入的最大长度
              maxLengthText:最大长度验证失败后显示的提示信息
              minLength:字段允许输入的最小长度
              minLengthText:最小长度验证失败后显示的提示信息
              regex:正则表达式
              regexText:正则表达式验证失败后显示的提示信息
              vtype:验证类型的名字
                   alpha:限制只能输入字母
                   alphanum:限制只能输入字母和数字
                   email
                   url
              vtypeText:验证失败时的提示信息
              validator:自定义验证函数
              selectOnFocus:当字段得到焦点时自动选择已存在的文本,默认为false

     

    4、Ext.form.TextArea
          配置项:
               preventScrollbars:是否禁止出现滚动条,默认为false 

     

    5、Ext.form.NumberField
          配置项:
               allowDecimals:是否允许输入小数,默认为true
               allowNegative:是否允许输入负数,默认为true
               baseChars:输入的有效数字集合,默认为'0123456789'
               decimalPrecision:数字的精度,默认保留小数点后2位
               decimalSeparator:十进制分隔符,默认为'.'
               maxValue:允许输入的最大数值
               maxText:超过最大值之后的提示信息
               minValue:允许输入的最小数值
               minText:超过最小值之后的提示信息
               nanText:输入非有效数值之后的提示信息

     

    6、Ext.form.Checkbox
          配置项:
               boxLabel:复选框的文字描述
               checked:复选框是否被选择,默认为false
               handler:当checked值改变时触发的函数,函数包含两个参数:checkbox、checked
               inputValue:
         方法:
               getValue():返回复选框的checked状态
               setValue( Boolean/String checked ): 

     

    7、Ext.form.CheckboxGroup
         配置项:
               allowBlank:是否允许不选择,默认为true
               blankText:
               columns:显示的列数,可选值包括:固定值auto、数值、数组(整数、小数)
               items:对象数组
               vertical:是否垂直方向显示对象,默认为false

     

    8、Ext.form.Radio
         方法:
               getGroupValue():
               setValue( value {String/Boolean} ): 

     

    9、Ext.form.RadioGroup
         配置项:
               allowBlank:
               blankText:

     

    10、Ext.form.ComboBox
          配置项:
               displayField:被显示在下拉框中的字段名
               editable:是否可编辑,默认为true
               forceSelection:输入值是否严格为待选列表中存在的值。如果输入不存在的值,会自动选择第一个最接近的值。
               hiddenName:隐藏字段的名字,如果提供该参数则一个隐藏字段将被创建,用来存储所选值,当表单提交时在服务器端可以通过该名字取得列表中的所选值
               listWidth:下拉列表的宽度
               minListWidth:下拉列表的最小宽度,默认为70像素
               loadingText:当下拉框加载数据时显示的提示信息,只有当mode='remote'时才会生效
               maxHeight:下拉列表框的最大高度,默认为300像素
               minChars:下拉列表框自动选择前用户需要输入的最小字符数量。mode='remote'默认为4,mode='local'默认为0
               mode:下拉列表框的数据读取模式。remote读取远程数据,local读取本地数据
               pageSize:下拉列表框的分页大小。该项设置只在mode='remote'时生效
               queryParam:查询的名字,默认为'query',将被传递到查询字符串中
               allQuery:一个发往服务器用来查询全部信息的查询字符串,默认为空字符串''
               selectOnFocus:当获得焦点时立刻选择一个已存在的列表项。默认为false,此项只有在editable=true时才会生效
               store:列表框绑定的数据源
               transform:将页面中已存在的元素转换为组合框
               lazyInit:延时初始化下拉列表,默认为true
               lazyRender:延时渲染,默认为false
               triggerAction:设置单击触发按钮时执行的默认操作,有效值包括all和query,默认为query,如果设置为all则会执行allQuery中设置的查询
               typeAhead:设置在输入过程中是否自动选择匹配的剩余部分文本(选择第一个满足条件的),默认为false
               value:初始化组合框中的值
               valueField:组合框的值字段
               valueNotFoundText:值不存在时的提示信息
               tpl:Ext模板字符串或模板对象,可以通过该配置项自定义下拉列表的显示方式

         方法:
               clearValue():清空字段当前值
               doQuery( String query, Boolean forceAll ):
               getValue():
               getStore():
               setValue( String value ):

     

    11、Ext.form.DateField
         配置项:
               maxValue:允许选择的最大日期
               maxText:当日期大于最大值时的错误提示信息
               minValue:允许选择的最小时间
               minText:当日期小于最小值时的错误提示信息
               format:日期显示格式,默认为“m/d/y”,一般使用“Y-m-d”
                   Y:四位年份
                   m:带前缀0的月份
                   d:带前缀0的日期
                   y:两位年份
                   n:不带前缀0的月份
                   j:不带前缀0的日期
                   w:星期的数字,0表示星期日,1代表星期一
               showToday:是否显示今天按钮,默认为true
               altFormats:多个日期输入格式组成的字符串,不同的格式之间使用“|”进行分割,默认值为'm/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d'
               disabledDates:禁止选择的日期组成的数组
               disabledDatesText:选择禁选日期时显示的提示信息
               disabledDays:禁止选择的星期组成的数组,0代表星期日,1代表星期一
               disabledDaysText:选择禁选星期时显示的提示信息
               invalidText:当日期值非法时显示的提示信息
         方法:
               getValue():取得日期值

     

    12、Ext.form.FieldSet
          配置项:
               animCollapse:动画折叠,默认为false
               checkboxToggle:设置是否显示字段集的checkbox选择框,默认为false
               checkboxName:指定字段集中用于展开或隐藏字段集面板的checkbox的名字,该属性只有在checkboxToggle为true时生效
               labelWidth:字段标签的宽度,可以级联到子容器
               layout:布局,默认为form 

     

    13、Ext.form.TimeField
          配置项:
               maxValue:列表中允许的最大时间
               maxText:当时间大于最大值时的错误提示信息
               minValue:列表中允许的最小时间
               minText:当时间小于最小值时的错误提示信息
               increment:两个相邻选项间的时间间隔,默认为15分钟
               format:显示格式,默认为“g:i A”。一般使用“H:i:s”
                    H:带前缀0的24小时
                    i:带前缀0的分钟
                    s:带前缀0的秒
               invalidText:当时间值非法时显示的提示信息
               altFormats:多个时间输入格式组成的字符串,不同的格式之间使用“|”进行分割

     

    • 21:57
    • 评论 / 浏览 (0 / 389)
    • 分类:Web前端
    2010-10-07缩略显示

    表单组件_v2.2(一)

      博客分类:
    • ExtJS_3.0
    EXT浏览器

    1、Ext.form.Action

         配置项:
              success:执行成功后回调的函数,包括两个参数:form和action
              failure:执行失败后回调的函数,包括两个参数:form和action
              method:表单的提交方式,有效值包括GET、POST
              params:传递到请求中的参数
              url:动作提交的路径
              waitMsg:动作执行时显示的等待信息
         属性:
              Action.CLIENT_INVALID:客户端验证错误
              Action.CONNECT_FAILURE:通信错误
              Action.LOAD_FAILURE:加载数据时,没有包含data属性的字段被返回
              Action.SERVER_INVALID:服务端验证错误
              failureType:错误类型
              result:包含布尔类型的success属性和其他属性,如{success: true, msg: 'ok'}
              type:动作类型,可选值有submit和load
                   Ext.form.Action.Submit:返回的信息中要包含一个布尔类型的success属性和一个可选的errors属性
                   Ext.form.Action.Load:返回的信息中要包含一个布尔类型的success属性和一个data属性

     

    2、Ext.form.BasicForm

         配置项:
              baseParams:传递到请求中的参数
              method:表单的提交方式,有效值包括GET、POST
              url:表单默认的提交路径
              fileUpload:表单是否进行文件上传
              timeout:表单动作的超时时间,默认为30秒
              trackResetOnLoad:是否在表单初次创建时清楚数据
        方法:
              doAction( String/Object actionName, [Object options] ):执行一个预订的动作,可用选项包括:
                  url:动作提交的路径
                  method:表单的提交方式,有效值包括GET、POST
                  params:传递到请求中的参数
                  headers:
                  success:执行成功后回调的函数,包括两个参数:form和action
                  failure:执行失败后回调的函数,包括两个参数:form和action
                  clientValidation:是否客户端验证
              clearInvalid():清除表单中所有的无效验证信息
              findField( String id ):查找表单字段
              getValues( [Boolean asString] ):
              isDirty():表单数据是否被更改过
              isValid():客户端验证是否成功
              load( Object options ):执行表单读取动作
              loadRecord( Record record ):从一个数据记录中读取数据到表单中
              markInvalid( Array/Object errors ):成批设置表单字段为验证无效
              reset():重置表单
              setValues( Array/Object values ):成批设置表单字段值
              submit( Object options ):执行表单提交动作
              updateRecord( Record record ):持久化表单数据到记录集中 

     

    3、Ext.form.FormPanel

         配置项:
              items:一个元素或元素数组
              buttons:一个按钮配置对象的数组,按钮将被添加到表单页脚中
              buttonAlign:按钮的对齐方式,可选值有left、center、right,默认为center
              labelWidth:表单标签的宽度
              labelAlign:表单标签的对齐方式,可选值有left、top、right,默认为left
              labelSeparator:字段标签与字段之间的分隔符,默认为':'
              minButtonWidth:按钮的最小宽度,默认为75
         方法:
              getForm() : Ext.form.BasicForm
              load( Object options )
              startMonitoring()
              stopMonitoring() 

     

    4、Ext.form.Field

        配置项:
              name:字段名
              value:字段的初始化值
              disabled:字段是否不可用,默认为false
              fieldLabel:字段标签说明
              hideLabel:隐藏字段标签,默认为false
              labelSeparator:字段标签与字段之间的分隔符,默认为':'
              labelStyle:字段标签样式
              inputType:默认为text
              invalidClass:默认为x-form-invalid
              invalidText:字段非法文本提示
              msgTarget:错误信息显示的位置,默认为qtip
                  qtip:显示一个浮动的提示信息
                  title:显示一个浏览器的浮动提示信息
                  under:在字段下方显示一个提示信息
                  side:在字段右边显示一个提示信息
              readOnly:字段是否只读,默认为false
              validateOnBlur:字段在失去焦点时被验证,默认为true
         方法:
              clearInvalid():
              getRawValue()
              setRawValue( Mixed value )
              getValue()
              setValue( Mixed value )
              isDirty():字段值在装载后是否被修改过
              isValid( Boolean preventMark ):当前字段值是否合法
              markInvalid( [String msg] )
              validate()
              reset() 

     

     

    • 21:48
    • 评论 / 浏览 (0 / 412)
    • 分类:Web前端
    2010-05-24缩略显示

    属性表格:Ext.grid.PropertyGrid

      博客分类:
    • ExtJS_3.0
    EXTJ#

    1、Ext.grid.PropertyGrid
          主要配置项:
                customEditors:自定义编辑器。内置编辑器有string、date、number、boolean
                source:表格要显示的数据对象
      
          主要方法:
                getSource():取得数据源对象
                setSource( Object source ):设置数据源对象,数据源格式如下:
                      grid.setSource({
                            "(name)": "My Object",
                            "Created": new Date(Date.parse('10/15/2006')),
                            "Available": false,
                            "Version": .01,
                            "Description": "A test object"
                      });

     

     

    2、范例源码

    Js代码
    1. var grid = new Ext.grid.PropertyGrid({   
    2.     title: "PropertyGrid实例",   
    3.     width: 300,   
    4.     height: 300,   
    5.     frame: true,   
    6.     source: {   
    7.         "员工名称""张三",   
    8.         "出生日期"new Date(1978, 01, 02),   
    9.         "性别""男",   
    10.         "是否已婚"true,   
    11.         "年龄": 31   
    12.     },   
    13.     customEditors: {   
    14.         "性别"new Ext.grid.GridEditor(new Ext.form.ComboBox({   
    15.             editable: false,   
    16.             displayField: "sex",   
    17.             mode: "local",   
    18.             triggerAction: "all",   
    19.             store: new Ext.data.SimpleStore({   
    20.                 fields: ["sex"],   
    21.                 data: [["男"], ["女"]]   
    22.             })   
    23.         })),   
    24.            
    25.         //内置的日期编辑器有bug,自定义日期字段的编辑器可解决   
    26.         "出生日期"new Ext.grid.GridEditor(new Ext.form.DateField({   
    27.             format: "Y年m月d日",   
    28.             selectOnFocus: true,   
    29.             allowBlank: false  
    30.         }))   
    31.     }   
    32. });   
    33.   
    34. //内置的日期字段格式是”m/j/Y“,如果需要改变默认格式则要通过取得表格的列模式来实现   
    35. grid.getColumnModel().dateFormat = "Y年m月d日";   
    36.   
    37. grid.render("div1");  



       

    • 大小: 19.7 KB
    • 查看图片附件
    • 21:03
    • 评论 / 浏览 (0 / 1233)
    • 分类:Web前端
    2010-05-24缩略显示

    可编辑表格:Ext.grid.EditorGridPanel

      博客分类:
    • ExtJS_3.0
    EXTHTML

    1、Ext.grid.EditorGridPanel
          主要配置项:

                clicksToEdit:设置点击单元格进入编辑模式的点击次数,默认为2
                autoEncode:是否自动编码/解码HTML内容,默认为false
                selModel:默认为Ext.grid.CellSelectionModel
      
          主要方法:
                startEditing( Number rowIndex, Number colIndex ):开始编辑指定单元格
                stopEditing( [Boolean cancel] ):结束编辑操作

     

     

    2、范例源码

    Js代码
    1. var datas = [[1,"张三",24,"男",new Date(1986,06,09)], [2,"李四",30,"女",new Date(1980,09,13)], [3,"王五",28,"男",new Date(1982,01,10)]];   
    2.                
    3. var person = Ext.data.Record.create([   
    4.     {name: "personId", mapping: 0},   
    5.     {name: "personName", mapping: 1},   
    6.     {name: "personAge", mapping: 2},   
    7.     {name: "personGender", mapping: 3},   
    8.     {name: "personBirth", mapping: 4}   
    9. ]);   
    10.   
    11. //复选框选择模式   
    12. var checkboxSM = new Ext.grid.CheckboxSelectionModel({   
    13.     checkOnly: false,   
    14.     singleSelect: false  
    15. });   
    16.   
    17. var cellSM = new Ext.grid.CellSelectionModel();   
    18.   
    19. var grid = new Ext.grid.EditorGridPanel({   
    20.     title: "EditorGridPanel实例",   
    21.     renderTo: "div1",   
    22.     width: 500,   
    23.     height: 300,   
    24.     frame: true,   
    25.     tbar: [   
    26.         {   
    27.             text: "保存",   
    28.             iconCls: "save",   
    29.             handler: function(){   
    30.                    
    31.             }   
    32.         },   
    33.         {   
    34.             text: "刷新",   
    35.             iconCls: "refresh",   
    36.             handler: function(){   
    37.                    
    38.             }   
    39.         }   
    40.     ],   
    41.     store: new Ext.data.Store({   
    42.         reader: new Ext.data.ArrayReader({id:0}, person),   
    43.         data: datas   
    44.     }),   
    45.     columns: [   
    46.         checkboxSM,   
    47.         {   
    48.             id:"personId",    
    49.             header:"编号",    
    50.             width:50,    
    51.             dataIndex:"personId"  
    52.         },   
    53.         {   
    54.             id:"personName",    
    55.             header:"姓名",    
    56.             width:70,    
    57.             dataIndex:"personName",    
    58.             editor:new Ext.form.TextField({   
    59.                 allowBlank:false  
    60.             })   
    61.         },   
    62.         {   
    63.             id:"personAge",    
    64.             header:"年龄",    
    65.             width:45,    
    66.             dataIndex:"personAge",    
    67.             editor:new Ext.form.NumberField()   
    68.         },   
    69.         {   
    70.             id:"personGender",    
    71.             header:"性别",    
    72.             width:45,    
    73.             dataIndex:"personGender",    
    74.             editor: new Ext.form.ComboBox({   
    75.                 editable: false,   
    76.                 displayField: "sex",   
    77.                 mode: "local",   
    78.                 triggerAction: "all",   
    79.                 store: new Ext.data.SimpleStore({   
    80.                     fields: ["sex"],   
    81.                     data: [["男"], ["女"]]   
    82.                 })   
    83.             })   
    84.         },   
    85.         {   
    86.             id:"personBirth",    
    87.             header:"出生日期",    
    88.             width:120,    
    89.             dataIndex:"personBirth",    
    90.             renderer:Ext.util.Format.dateRenderer("Y年m月d日"),    
    91.             editor:new Ext.form.DateField({   
    92.                 format: "Y-m-d"  
    93.             })   
    94.         }   
    95.     ],   
    96.     autoExpandColumn: "personBirth",   
    97.     stripeRows: true,   
    98.     sm: checkboxSM   
    99. });  

      

     

    • 大小: 40 KB
    • 查看图片附件
    • 20:59
    • 评论 / 浏览 (0 / 2364)
    • 分类:Web前端
    2010-05-24缩略显示

    表格数据分组:Ext.grid.GroupingView

      博客分类:
    • ExtJS_3.0
    EXT

    1、Ext.grid.GroupingView
          主要配置项:
                enableGroupingMenu:是否在表头菜单中进行分组控制,默认为true
                groupByText:表头菜单中分组控制的菜单文字,默认为'Group By This Field'
      
                enableNoGroups:是否允许用户关闭分组功能,默认为true
                showGroupsText:在表头菜单中启用分组和禁用分组的菜单文字,默认为'Show in Groups'
      
                groupTextTpl:用于渲染分组信息的模板,默认为'{text}',常用的可选值有:
                      text:列标题:组字段值
                      gvalue:组字段的值
                      startRow:组行索引
      
                enableGrouping:是否对数据分组,默认为true
                hideGroupedColumn:是否隐藏分组列,默认为false
                ignoreAdd:在向表格中添加数据时是否刷新表格,默认为false
                showGroupName:是否在分组行上显示分组字段的名字,默认为true
                startCollapsed:初次显示时分组是否处于收缩状态,默认为false
      
          主要方法:
                collapseAllGroups():收缩所有分组行
                expandAllGroups():展开所有分组行
                getGroupId( String value ):根据分组字段值取得组id
                toggleAllGroups( [Boolean expanded] ):切换所有分组行的展开或收缩状态
                toggleGroup( String groupId, [Boolean expanded] ):切换指定分组行的展开或收缩状态

     

     

    2、Ext.data.GroupingStore
          groupField:分组字段
     
          groupOnSort:是否在分组字段上排序,默认为false
          remoteGroup:是否远程分组数据,默认为false。如果是远程分组数据,则通过groupBy参数发送分组字段名

     

     

    3、范例源码

    Js代码
    1. var datas = [[1,"张三",24,"男",new Date(1986,06,09)], [2,"李四",30,"女",new Date(1980,09,13)], [3,"王五",28,"男",new Date(1982,01,10)]];   
    2.                
    3. var person = Ext.data.Record.create([   
    4.     {name: "personId", mapping: 0},   
    5.     {name: "personName", mapping: 1},   
    6.     {name: "personAge", mapping: 2},   
    7.     {name: "personGender", mapping: 3},   
    8.     {name: "personBirth", mapping: 4}   
    9. ]);   
    10.   
    11. var grid = new Ext.grid.GridPanel({   
    12.     title: "GroupingView实例",   
    13.     renderTo: "div1",   
    14.     width: 500,   
    15.     height: 300,   
    16.     frame: true,   
    17.     tbar: [   
    18.         {   
    19.             text: "展开/收缩",   
    20.             iconCls: "search",   
    21.             handler: function(){   
    22.                 var view = grid.getView();   
    23.                 //var groupId = view.getGroupId("男");   
    24.                 //view.toggleGroup(groupId);   
    25.                 view.toggleAllGroups();   
    26.             }   
    27.         }   
    28.     ],   
    29.        
    30.     store: new Ext.data.GroupingStore({   
    31.         reader: new Ext.data.ArrayReader({id:0}, person),   
    32.         data: datas,   
    33.         sortInfo: {field:"personId", direction:"ASC"}, //数据排序   
    34.         groupField: "personGender" //分组字段   
    35.     }),   
    36.     view: new Ext.grid.GroupingView({   
    37.         sortAscText: "升序",   
    38.         sortDescText: "降序",   
    39.         columnsText: "表格字段",   
    40.         groupByText: "使用当前字段进行分组",   
    41.         showGroupsText: "表格分组",   
    42.         groupTextTpl: "{text}(共{[values.rs.length]}条)"  
    43.     }),   
    44.        
    45.     columns: [   
    46.         {id:"personId", header:"编号", width:50, dataIndex:"personId"},   
    47.         {id:"personName", header:"姓名", width:70, dataIndex:"personName"},   
    48.         {id:"personAge", header:"年龄", width:45, dataIndex:"personAge"},   
    49.         {id:"personGender", header:"性别", width:45, dataIndex:"personGender"},   
    50.         {id:"personBirth", header:"出生日期", width:120, dataIndex:"personBirth", renderer:Ext.util.Format.dateRenderer("Y年m月d日")}   
    51.     ]   
    52. });  

      

     

    • 大小: 37.1 KB
    • 查看图片附件
    • 20:46
    • 评论 / 浏览 (0 / 2577)
    • 分类:Web前端
    2010-05-24缩略显示

    普通表格范例

      博客分类:
    • ExtJS_3.0
    EXT

    主要演示以下功能:
         包含复选框列、行号列
         自定义单元格的渲染
         定制表格视图
         各种选择模式:单元格、行、复选框

     

    范例源码:

    Js代码
    1. var datas = [[1,"张三",24,"Y",new Date(1986,06,09)], [2,"李四",30,"N",new Date(1980,09,13)], [3,"王五",28,"Y",new Date(1982,01,10)]];   
    2.                
    3. var person = Ext.data.Record.create([   
    4.     {name: "personId", mapping: 0},   
    5.     {name: "personName", mapping: 1},   
    6.     {name: "personAge", mapping: 2},   
    7.     {name: "personGender", mapping: 3},   
    8.     {name: "personBirth", mapping: 4}   
    9. ]);   
    10.   
    11. //复选框选择模式   
    12. var checkboxSM = new Ext.grid.CheckboxSelectionModel({   
    13.     checkOnly: true,   
    14.     singleSelect: false  
    15. });   
    16.   
    17. var grid = new Ext.grid.GridPanel({   
    18.     id: "grid1",   
    19.     title: "GridPanel实例",   
    20.     renderTo: "div1",   
    21.     width: 500,   
    22.     height: 300,   
    23.     //frame: true,   
    24.     tbar: [   
    25.         {   
    26.             text: "取得所选单元格",   
    27.             iconCls: "search",   
    28.             handler: function(){   
    29.                 /*  
    30.                 //单元格选择模式:new Ext.grid.CellSelectionModel()  
    31.                 var cell = grid.getSelectionModel().getSelectedCell();  
    32.                 if(cell!=null) alert(cell[1]);  
    33.                 */  
    34.                    
    35.                 /*  
    36.                 //行选择模式:new Ext.grid.RowSelectionModel()  
    37.                 var msg = "";  
    38.                 grid.getSelectionModel().each(function(record){  
    39.                     msg += record.get("personName") + "\n";  
    40.                 });  
    41.                 if(msg!="") alert(msg);  
    42.                 */  
    43.             }   
    44.         }   
    45.     ],   
    46.        
    47.     store: new Ext.data.Store({   
    48.         reader: new Ext.data.ArrayReader({id:0}, person),   
    49.         data: datas   
    50.     }),   
    51.     columns: [   
    52.         checkboxSM,   
    53.         new Ext.grid.RowNumberer({header:"行号", width:35}),   
    54.         {id:"personId", header:"编号", width:50, dataIndex:"personId"},   
    55.         {id:"personName", header:"姓名", width:70, dataIndex:"personName"},   
    56.         {id:"personAge", header:"年龄", width:45, dataIndex:"personAge", renderer:formatAge},   
    57.         {id:"personGender", header:"性别", width:45, dataIndex:"personGender", renderer:formatGender},   
    58.         {id:"personBirth", header:"出生日期", width:120, dataIndex:"personBirth", renderer:Ext.util.Format.dateRenderer("Y年m月d日")}   
    59.     ],   
    60.     //autoExpandColumn: "personBirth",   
    61.     stripeRows: true,   
    62.     //sm: new Ext.grid.CellSelectionModel()   
    63.     //sm: new Ext.grid.RowSelectionModel()   
    64.     sm: checkboxSM,   
    65.     viewConfig: { //表格视图配置对象   
    66.         enableRowBody: true,   
    67.         sortAscText: "升序",   
    68.         sortDescText: "降序",   
    69.         columnsText: "列表字段",   
    70.         getRowClass: function(record, index, rowParams, store){   
    71.             rowParams.body = "" + record.get("personName") + "
    ";   
  •             rowParams.bodyStyle = "height:30;background-color:#FFFFCC;";   
  •         }   
  •     }   
  • });   
  •   
  • //自定义单元格渲染函数   
  • function formatAge(value, metadata){   
  •     if(value>=30){   
  •         metadata.attr = 'style="background-color:#CCFFFF"';   
  •     }   
  •     return value;   
  • }   
  •   
  • function formatGender(value){   
  •     return value=="Y" ? "男" : "";   
  • }  
  •  

     

    • 大小: 31.1 KB
    • 查看图片附件
    • 16:14
    • 评论 / 浏览 (0 / 486)
    • 分类:Web前端
    2010-05-24缩略显示

    普通表格:Ext.grid.GridPanel

      博客分类:
    • ExtJS_3.0
    EXTCSS

    表格相关组件总图:

     

     

    1、Ext.grid.GridPanel
         主要配置项:
              store:表格的数据集
              columns:表格列模式的配置数组,可自动创建ColumnModel列模式
              autoExpandColumn:自动充满表格未用空间的列,参数为列id,该id不能为0
              stripeRows:表格是否隔行换色,默认为false
      
              cm、colModel:表格的列模式,渲染表格时必须设置该配置项
              sm、selModel:表格的选择模式,默认为Ext.grid.RowSelectionModel
              enableHdMenu:是否显示表头的上下文菜单,默认为true
              enableColumnHide:是否允许通过标题中的上下文菜单隐藏列,默认为true
              loadMask:是否在加载数据时显示遮罩效果,默认为false
              view:表格视图,默认为Ext.grid.GridView
              viewConfig:表格视图的配置对象
      
              autoExpandMax:自动扩充列的最大宽度,默认为1000
              autoExpandMin:自动扩充列的最小宽度,默认为50
              columnLines:是否显示列分割线,默认为false
              disableSelection:是否禁止行选择,默认为false
              enableColumnMove:是否允许拖放列,默认为true
              enableColumnResize:是否允许改变列宽,默认为true
              hideHeaders:是否隐藏表头,默认为false
              maxHeight:最大高度
              minColumnWidth:最小列宽,默认为25
              trackMouseOver:是否高亮显示鼠标所在的行,默认为true
      
          主要方法:
              getColumnModel():取得列模式
              getSelectionModel():取得选择模式
              getStore():取得数据集
              getView():取得视图对象
              reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ):使用一个新的数据集和列模式重新配置表格组件 

     

     

    2、Ext.grid.Column
          主要配置项:
              id:列id
              header:表头文字
              dataIndex:设置列与数据集中数据记录的对应关系,值为数据记录中的字段名称。如果没有设置该项则使用列索引与数据记录中字段的索引进行对应
              width:列宽
              align:列数据的对齐方式
      
              hidden:是否隐藏列,默认为false
              fixed:是否固定列宽,默认为false
              menuDisabled:是否禁用列的上下文菜单,默认为false
              resizable:是否允许改变列宽,默认为true
              sortable:是否允许排序,默认为true
              renderer:设置列的自定义单元格渲染函数
                    传入函数的参数有:
                        value:数据的原始值
                        metadata:元数据对象,用于设置单元格的样式和属性,该对象包含的属性有:
                              css:应用到单元格TD元素上的样式名称
                              attr:一个HTML属性定义字符串,例如'style="color:blue"'
                        record:当前数据记录对象
                        rowIndex:单元格的行索引
                        colIndex:单元格的列索引
                        store:数据集对象
        
              xtype:列渲染器类型,默认为gridcolumn,其它可选值有booleancolumn、numbercolumn、datecolumn、templatecolumn等
      
              editable:是否可编辑,默认为true
              editor:编辑器
      
              groupName:
              emptyGroupText:
              groupable: 

     

     

    3、Ext.grid.ColumnModel
          主要配置项:
              columns:字段数组
              defaultSortable:是否进行默认排序,默认为false
              defaultWidth:默认宽度
      
          主要方法:
              findColumnIndex( String col ):根据给定的dataIndex查找列索引
              getColumnById( String id ):取得指定id对应的列
              getColumnCount( Boolean visibleOnly ):取得列总数
              getColumnHeader( Number col ):取得列的表头
              getColumnId( Number index ):取得列id
              getDataIndex( Number col ):取得列对应的数据字段名
              getIndexById( String id ):取得列索引
              getTotalWidth( Boolean includeHidden )
              isCellEditable( Number colIndex, Number rowIndex )
              isFixed()
              isHidden( Number colIndex )
              setColumnHeader( Number col, String header )
              setColumnWidth( Number col, Number width, Boolean suppressEvent )
              setDataIndex( Number col, String dataIndex )
              setEditable( Number col, Boolean editable )
              setEditor( Number col, Object editor )
              setHidden( Number colIndex, Boolean hidden )
              setRenderer( Number col, Function fn ) 

     

     

    4、Ext.grid.AbstractSelectionModel
          主要方法:
                lock():锁定选择区域
                unlock():解锁选择区域
                isLocked():当前选择区域是否被锁定
      


    5、Ext.grid.CellSelectionModel
          主要方法:
                clearSelections( Boolean preventNotify ):清除选择区域
                getSelectedCell():取得当前选择的单元格,返回一数组,其格式:[rowIndex, colIndex]
                hasSelection():当前是否有选择区域
                select( Number rowIndex, Number colIndex, [Boolean preventViewNotify], [Boolean preventFocus], [Ext.data.Record r] ):选择指定单元格
        

     

    6、Ext.grid.RowSelectionModel
          主要配置项:
                singleSelect:是否单选模式,默认为false,即可以选择多条数据
     
          主要方法:
                clearSelections( [Boolean fast] ):清除所有选择区域
                deselectRange( Number startRow, Number endRow ):取消范围内的行选择
                deselectRow( Number row, [Boolean preventViewNotify] ):取消指定行的选择状态
                each( Function fn, [Object scope] ):遍历所有选择行,并调用指定函数。当前被选行将传入该函数中
                getCount():得到选择的总行数
                getSelected():得到第一个被选记录
                getSelections():得到所有被选记录的数组
                hasNext():判断当前被选行之后是否还有记录可以选择
                hasPrevious():判断当前被选行之前是否还有记录可以选择
                hasSelection():是否已选择了数据
                isIdSelected( String id ):判断指定id的记录是否被选择
                isSelected( Number/Record index ):判断指定记录或记录索引的数据是否被选择
                selectAll():选择所有行
                selectFirstRow():选择第一行
                selectLastRow( [Boolean keepExisting] ):选择最后行
                      keepExisting:是否保持已有的选择
                selectNext( [Boolean keepExisting] ):选择当前选择行的下一行
                selectPrevious( [Boolean keepExisting] ):选择当前选择行的上一行
                selectRange( Number startRow, Number endRow, [Boolean keepExisting] ):选择范围内的所有行
                selectRecords( Array records, [Boolean keepExisting] ):选择一组指定记录
                selectRow( Number row, [Boolean keepExisting], [Boolean preventViewNotify] ):选择一行
                      row:行索引
                selectRows( Array rows, [Boolean keepExisting] ):选择多行
                      rows:行索引数组 

     

     

    7、Ext.grid.CheckboxSelectionModel
          主要配置项:
                singleSelect:是否单选模式,默认为false,即可以选择多条数据
                checkOnly:是否只能通过点击checkbox列进行选择,默认为false
                sortable:是否允许checkbox列排序,默认为false
                width:checkbox列的宽度,默认为20
      


    8、Ext.grid.RowNumberer
          主要配置项:
                header:行号列表头显示的内容
                width:列宽,默认为23

     

     

    9、Ext.grid.GridView
          主要配置项:
                enableRowBody:是否包含行体
                sortAscText:表格标题菜单中升序的文字描述
                sortDescText:表格标题菜单中降序的文字描述
                columnsText:表格标题菜单中列对应的文字描述
                autoFill:是否自动扩展列以充满整个表格,默认为false
                forceFit:是否强制调整表格列宽以适用表格的整体宽度,防止出现水平滚动条,默认为false
     
          主要方法:
                focusCell( Number row, Number col ):将焦点移到指定单元格
                focusRow( Number row ):将焦点移动指定行
                getCell( Number row, Number col ):取得指定单元格对应的td元素
                getHeaderCell( Number index ):取得指定表头对应的td元素
                getRow( Number index ):取得指定行对应的tr元素
                getRowClass( Record record, Number index, Object rowParams, Store store ):得到附加到表格行上的样式名
                      record:当前行的数据记录对象
                      index:当前行的索引
                      rowParams:渲染时传入到行模板中的配置对象,通过它可以为行体定制样式,该对象只在enableRowBody为true时才生效,可能的属性如下:
                            body:渲染到行体中的HTML代码片段
                            bodyStyle:应用到行体tr元素style属性的字符串
                            cols:应用到行体td元素colspan属性的值,默认为总列数
                      store:表格数据集
                refresh( [Boolean headersToo] ):刷新表格组件
                scrollToTop():滚动表格到顶端 

     

    • 大小: 107.3 KB
    • 查看图片附件
    • 15:48
    • 评论 / 浏览 (0 / 2675)
    • 分类:Web前端
    2010-05-21缩略显示

    树组件:异步树范例

      博客分类:
    • ExtJS_3.0
    EXT

    1、范例主要展示以下功能点:

          树节点通过请求服务器URL地址获得

          请求附加自定义参数值

          重新加载树节点的子节点

          节点附件自定义属性值

     

    2、范例源码

    Js代码
    1. Ext.onReady(function(){   
    2.     Ext.BLANK_IMAGE_URL = "../widgets/ext-3.0/resources/images/default/s.gif";   
    3.     Ext.QuickTips.init();    
    4.        
    5.     var tree = new Ext.tree.TreePanel({   
    6.         title: "异步加载树节点",   
    7.         renderTo: Ext.getBody(),   
    8.         width: 300,   
    9.         height: 300,   
    10.            
    11.         useArrows: true,   
    12.         rootVisible: false,   
    13.         /*  
    14.         root: new Ext.tree.AsyncTreeNode({  
    15.             id: "root",  
    16.             text: "根节点",  
    17.             expanded: true  
    18.         }),  
    19.         */  
    20.         root: {   
    21.             nodeType: "async",   
    22.             id: "root",   
    23.             text: "根节点",   
    24.             expanded: true  
    25.         },   
    26.         tbar: [   
    27.             {   
    28.                 text: "重新加载",   
    29.                 handler: function(){   
    30.                     var loader = tree.getLoader();   
    31.                     var node = tree.getNodeById("1_2");   
    32.                     loader.load(node); //重新加载树节点的子节点   
    33.                     node.expand(); //展开树节点   
    34.                 }   
    35.             }   
    36.         ],   
    37.         loader: new Ext.tree.TreeLoader({   
    38.             dataUrl: "../tree-loader.action",   
    39.             baseAttrs: {   
    40.                 username: "cjm"  
    41.             },   
    42.             baseParams: {   
    43.                 password: "cjm"  
    44.             },   
    45.             listeners: {   
    46.                 "beforeload"function(loader, node){   
    47.                     loader.baseParams.nodeText = node.text; //将节点属性值作为请求参数值发送   
    48.                 }   
    49.             }   
    50.         }),   
    51.         listeners: {   
    52.             "click"function(node, event){   
    53.                 //alert(node.attributes.username); //获取附加的属性值   
    54.             }   
    55.         }   
    56.     });   
    57.        
    58.     //节点编辑   
    59.     new Ext.tree.TreeEditor(tree);   
    60.        
    61.     //节点排序   
    62.     new Ext.tree.TreeSorter(tree, {   
    63.         folderSort: true,   
    64.         property: "id",   
    65.         dir: "asc"  
    66.     });   
    67. });  

     

    3、后台获取参数值(struts2)

    Java代码
    1. //获取节点的id值   
    2. String nodeId = ServletActionContext.getRequest().getParameter("node");   
    3.   
    4. //获取附加的参数值   
    5. String password = ServletActionContext.getRequest().getParameter("password");   
    6. String nodeText = ServletActionContext.getRequest().getParameter("nodeText");  

     

    4、子节点数据

    Java代码
    1. <%@ page language="java" pageEncoding="UTF-8"%>   
    2. <%   
    3.     String id = request.getParameter("node");   
    4. %>   
    5.   
    6. <% if("root".equals(id)){ %>   
    7. [   
    8.     {id:"1", text:"node1", leaf:false},   
    9.     {id:"2", text:"node2", leaf:true}   
    10. ]   
    11. <% } %>   
    12.   
    13. <% if("1".equals(id)){ %>   
    14. [   
    15.     {id:"1_1", text:"node1_1", leaf:true},   
    16.     {id:"1_2", text:"node1_2", children: [   
    17.         {id:"1_2_1", text:"node1_2_1", leaf:true}   
    18.     ]}   
    19. ]   
    20. <% } %>  

     

     

    • 大小: 12.8 KB
    • 查看图片附件
    • 15:34
    • 评论 / 浏览 (0 / 662)
    • 分类:Web前端
    2010-05-21缩略显示

    树组件:普通树范例

      博客分类:
    • ExtJS_3.0
    EXT

    1、范例包含以下功能点:

          节点包含复选框

          单击节点触发事件

          取得所有选中的节点(包括节点获取焦点和复选框选中两种情况)

     

    2、范例源码

    Js代码
    1. Ext.onReady(function(){   
    2.     Ext.BLANK_IMAGE_URL = "../widgets/ext-3.0/resources/images/default/s.gif";   
    3.     Ext.QuickTips.init();    
    4.        
    5.     var root = new Ext.tree.TreeNode({   
    6.         id: "root",   
    7.         text: "根节点"  
    8.     });   
    9.        
    10.     root.appendChild(new Ext.tree.TreeNode({   
    11.         text: "子节点1",   
    12.         checked: false  
    13.     }));   
    14.        
    15.     var node2 = new Ext.tree.TreeNode({   
    16.         id: "node2",   
    17.         text: "子节点2"  
    18.     });   
    19.     node2.appendChild(new Ext.tree.TreeNode({   
    20.         text: "二级菜单",   
    21.         checked: false  
    22.     }));   
    23.        
    24.     root.appendChild(node2);   
    25.        
    26.     var tree = new Ext.tree.TreePanel({   
    27.         title: "树面板(Ext.tree.TreePanel)",   
    28.         renderTo: Ext.getBody(),   
    29.         width: 300,   
    30.         height: 300,   
    31.         tbar: [   
    32.             {   
    33.                 text: "selected",   
    34.                 handler: function(){   
    35.                     var sm = tree.getSelectionModel();   
    36.                        
    37.                     //用于单选模式   
    38.                     /*  
    39.                     var node = sm.getSelectedNode();  
    40.                     if(node!=null){  
    41.                         alert(node.text);  
    42.                     }else{  
    43.                         alert("没有节点被选中!");  
    44.                     }  
    45.                     */  
    46.                        
    47.                     //用于多选模式   
    48.                     var nodes = sm.getSelectedNodes();   
    49.                     var length = nodes.length;   
    50.                     if(length>0){   
    51.                         alert("当前选中" + length + "个节点");   
    52.                     }else{   
    53.                         alert("没有节点被选中!");   
    54.                     }   
    55.                 }   
    56.             },   
    57.             {   
    58.                 text: "checked",   
    59.                 handler: function(){   
    60.                     var msg = "";   
    61.                     var nodes = tree.getChecked();   
    62.                     Ext.each(nodes, function(node){   
    63.                         if(msg.length>0) msg += ", ";   
    64.                         msg += node.text;   
    65.                     });   
    66.                     if(msg.length>0) alert(msg);   
    67.                 }   
    68.             }   
    69.         ],   
    70.         listeners: {   
    71.             "click"function(node, event){   
    72.                 var toolbar = tree.getBottomToolbar();   
    73.                 toolbar.items.item(0).setText("当前选中的节点:" + node.text);   
    74.             }   
    75.         },   
    76.         bbar: [   
    77.             "当前选中的节点:"  
    78.         ],   
    79.         root: root,   
    80.         useArrows: true,   
    81.         selModel: new Ext.tree.MultiSelectionModel()   
    82.     });   
    83.        
    84.     tree.getRootNode().expand(true); //级联展开所有子节点   
    85.     //alert(tree.getNodeById("node2").getPath()); //获取节点的text属性值   
    86. });  

     

    3、点击节点后在TabPanel增加一个页签

    Js代码
    1. function addTab(node){   
    2.     if(node.isLeaf()==falsereturn;    
    3.     var tabs = Ext.getCmp("tabs");    
    4.        
    5.     if(node.attributes.action){   
    6.         for(var i=1;i
    7.             tabs.remove(tabs.items.item(i));   
    8.         }   
    9.            
    10.         tabs.add({   
    11.             title: node.text,   
    12.             closable: true,   
    13.             autoLoad: node.attributes.action   
    14.         }).show();   
    15.     }   
    16. }