毒品对身体的影响:EXT表单组件常见属性介绍(三)

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 01:46:51

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

下拉框组件展示了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"  
  •     });   
  • });  
  • 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"  
  •     });   
  • });