`
hn2002
  • 浏览: 59186 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ext.FormPanel 2

    博客分类:
  • ext
阅读更多

好了,我们继续写 form ,因为要用到 column ,所以我们先在 formpanel itmes 加入一个 column 的定义:

{

layout:'column',

        border:false,

        labelSeparator:' ',

        items:[]

}

代码 里定义了在这里使用的是 columnlayout layout:'column' );

没有边( border:false );

标题的分隔符号我们用中文冒号代替英文的冒( labelSeparator:' '

coulmnLayout 里的控件将定义在 items 里。

我们首先在 items 里加入一个常用输入控件,是用来输入姓名的:

{

            columnWidth:.5,

            layout: 'form',

            border:false,

            items: [{

                xtype:'textfield',

                fieldLabel: ' 姓名 ',

                name: 'name',

                 anchor:'90%'

            }]

        }

我们设置了该列的宽度占总宽度的 50% columnWidth:.5 );

在布局里放了一个 formlayout 用来放置控件( layout: 'form' );

formlayout 也是没有边的( border:false )。

formlayout 里有一个类型为 textfield' xtype:'textfield' )的输入控件。

控件标题为姓名( fieldLabel: ' 姓名 ' ),输入框( input )的 name 属性设置“ name ”( name: 'name' ),输入框的长度为列宽减去标题的宽度后的 90% anchor:'90%' ),余下的 10% 的是给显示错误信息图标用的。

在加入性别的 radio 控件时就要注意了,这里需要加入两个 radio ,第一 radio 是有标题的,第二是没有的,而且两个 radio 加起来的宽度应该正好是余下的列宽( 50% ):

{

            columnWidth:.25,

            layout: 'form',

            border:false,

            items: [{

                      style:'margin-top:5px',

                xtype:'radio',

                fieldLabel: ' 性别 ',

                boxLabel:' ',

                name: 'sex',

                checked:true,

                inputValue:' ',

                anchor:'95%'

            }]

        },{

            columnWidth:.25,

            layout: 'form',

            labelWidth:0,

            labelSeparator:'',

            hideLabels:true,

            border:false,

            items: [{

                      style:'margin-top:5px',

                xtype:'radio',

                fieldLabel: '',

                boxLabel:' ',

                name: 'sex',

                inputValue:' ',

                anchor:'95%'

            }]

        }

 

从代码中可以看到,除了列宽设置为 25% 外,其它的列设置和第一控件是一样。 Formlayout 里加入了一个类型为 radio 的控件。控件的标题是性别,控件的选择显示文本是男( boxLabel:' 男), input name 属性值是 sex name: 'sex' ),该控件默认是已选的( checked:true ),控件的值( value )是男( inputValue:' ' ), input 的宽度是 95% 。在这里我还设置一个 css 属性,顶部的外补丁为 5px style:'margin-top:5px' ),原因是为了选择按钮和标题对齐,大家可以将该属性去掉然后看看效果。

第二个 raido 控件的列设置就有所不同,因为它不需要标题,所以要设置隐藏标题( hideLabels:true ),标题的宽度设置为 0 labelWidth:0 , 还要设置其标题分隔符号为空( labelSeparator:'' )。其余的设置和第一个 radio 的设置没有不同,只是 input 的值不同了。

我们已经设置了 3 列, 3 列的列宽分别为 50% 25% 25% ,根据 float 的原则,下一列将从第二行开始。

在第二行第一列我们要增加的是一个日期选择控件:

{

            columnWidth:.5,

            layout: 'form',

            border:false,

            items: [{

                 xtype:'datefield',

                fieldLabel: ' 出生日期 ',

                name: 'birthday',

                anchor:'90%'

            }]

      }

日期控件的列宽也是 50% ,列的其它设置没有变化。控件的类型为 datefield ,标题是出生日期, input name 属性是 birthday intput 宽度也是设置了 90% ,出来留出空位给错误信息外,还可以让控件与上一行的姓名的宽度相同,整列看起来比较整齐。

日期控件的设置和普通文本输入的设置一样简单,这里就不多说了。不过要说到的是汉化的问题。在 2.0 版自带的本地化文件 ext-lang-zh.js 中存在一些小 bug ,我们需要自己修改一下。

首先要修改的是周的显示,原来的定义是:

Date.dayNames = [

   " 周日 ",

   " 周一 ",

   " 周二 ",

   " 周三 ",

   " 周四 ",

   " 周五 ",

   " 周六 "

];

因为在日期选择中显示的区域不够宽,只能显示一个汉字,所以需要将上面定义的把“周”去掉,修改为:

Date.dayNames = [

   " ",

   " ",

   " ",

   " ",

   " ",

   " ",

   " "

];

在年份和月份选择中的按钮文字还是英文“ ok ”和“ cancel ”的,这里我们也需要修改一下:

if(Ext .DatePicker){

   Ext.apply(Ext.DatePicker.prototype, {

      todayText         : " 今天 ",

      minText            : " 日期在最小日期之前 ",

      maxText           : " 日期在最大日期之后 ",

      disabledDaysText  : "",

      disabledDatesText : "",

      monthNames      : Date.monthNames,

      dayNames          : Date.dayNames,     

      nextText          : ' 下月 (Control+Right)',

      prevText          : ' 上月 (Control+Left)',

      monthYearText     : ' 选择一个月 (Control+Up/Down 来改变年 )',

      todayTip          : "{0} (Spacebar)",

      okText            : "确定 ",

      cancelText        : "取消 ",

      format            : "y m d "

   });

}

上面定义中黑色字体部分就是要加入的代码。如果不喜欢默认格式是“ y m d 日”,需要修改:

if(Ext.form.DateField){

   Ext.apply(Ext.form.DateField.prototype, {

      disabledDaysText  : " 禁用 ",

      disabledDatesText : " 禁用 ",

      minText           : " 该输入项的日期必须在 {0} 之后 ",

      maxText           : " 该输入项的日期必须在 {0} 之前 ",

      invalidText       : "{0} 是无效的日期 - 必须符合格式: {1}",

      format            : "Y-m-d"

   });

}

修改 DatePicker 不会改变 DateField 的格式的,这个自己根据情况决定,呵呵

分享到:
评论

相关推荐

    Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别

    2. **Ext.Ajax.request的异步提交** `Ext.Ajax.request` 是EXTJS提供的一个通用的Ajax请求函数,它可以用来发送任何类型的HTTP请求,不仅仅是表单数据。 - **灵活性**:`Ext.Ajax.request`可以发送任意JSON、XML...

    .archExtJs2.0学习系列(7)--Ext.FormPanel之第四式(其他组件示例篇).doc

    首先,Ext.FormPanel是ExtJS中用于创建表单的主要组件,它允许我们构建复杂的表单布局并处理用户输入的数据。 1. **Checkbox简单示例** Checkbox在ExtJS中用于创建复选框,可以用来让用户选择多个选项。在示例中,...

    EXT.form组件

    1. `form`:`Ext.FormPanel`是EXT JS中的表单面板,它是一个容器,可以容纳各种表单字段和其他组件。表单面板允许你定义布局、提交行为以及处理表单数据的方法。 2. `checkbox`:`Ext.form.Checkbox`是用于创建复选...

    Ext 添加功能form表单实例

    在这个例子中,通过`new Ext.FormPanel`来创建了一个表单面板,并设置了一些关键属性: - `frame`: 设置为`true`,表示表单周围有一个边框。 - `width` 和 `height`: 分别设置了表单的宽度和高度。 - `layout`: ...

    ext几个实例

    【EXTJS】Ext.AJAX与FormPanel在登录案例中的应用 EXTJS是一个强大的JavaScript库,主要用于构建富客户端Web应用程序。在EXTJS中,Ext.AJAX和Ext.FormPanel是两个核心组件,它们分别用于异步与服务器进行数据交互和...

    Ext组件描述,各个组件含义

    **2.16 Form Panel (Ext.FormPanel)** - **xtype**: `form` - **功能描述**:Form Panel 是一个包含表单字段的面板。 - **主要用途**:用于创建和管理表单,支持数据验证和提交。 **2.17 Checkbox (Ext.form....

    ExtJs中处理后台传过来的date对象显示到页面上

    2. **配置存储(Store)**: 创建一个Store来管理你的数据,并与Model关联。你需要设置`proxy`来处理与服务器的通信,并且在`reader`中定义日期格式。例如: ```javascript var store = Ext.create('Ext.data....

    ExtJs_xtype一览

    - `form`:`Ext.FormPanel` 或 `Ext.form.FormPanel`,用于创建表单的容器。 - `checkbox`:`Ext.form.Checkbox`,多选框组件。 - `combo`:`Ext.form.ComboBox`,下拉选择框。 - `datefield`:`Ext.form....

    Ext js Xtype

    - **Form Components**: 用于构建表单的组件,如`Ext.FormPanel`,`Ext.form.Checkbox`,`Ext.form.TextField`等。 - **Chart Components**: 提供了各种图表组件,如`Ext.chart.Chart`,`Ext.chart.BarChart`,`Ext....

    Extjs帮助文档.pdf

    接下来将详细介绍文档中提到的几个核心概念,包括`Ext.MessageBox`、`Ext.Panel`、`Ext.Window`、`Ext.FormPanel`、`Ext.TabPanel`、`Ext.XTemplate`和`Ext.TreePanel`以及如何在Extjs中实现主题(换肤)功能。...

    ext学习资料ext学习资料

    Form组件,即`Ext.form.FormPanel`,用于创建和管理表单数据。它可以包含各种输入控件,如文本字段、复选框、下拉列表等。表单数据可以方便地提交到服务器,或者与数据存储进行双向绑定。下面是一个创建简单表单的...

    ext判断该用户是否在数据库中存在

    2. 在 validator 函数中,使用 Ext.Ajax.request 方法发送 AJAX 请求,检测用户名是否已经存在于数据库中。 3. 在服务器端,使用数据库查询来检测用户名是否已经存在于数据库中。 4. 在客户端,使用 validator 函数...

    Extjs4 下拉树 TreeCombo

    var formPanel = Ext.create('Ext.container.Container', { layout: 'fit', items: [treeCombo] }); Ext.create('Ext.container.Viewport', { layout: 'fit', items: [formPanel] }); } }); ``` 在给定的...

    extjs form textfield的隐藏方法

    this.formpanel = new Ext.FormPanel({ items: [{ fieldLabel: ‘代码’, name: ‘FCode’, anchor:’100%’, id: ‘fid’ },{ fieldLabel: ‘名称’, name: ‘FName’, anchor:’100%’ // anchor width by ...

    ext 的ppt ext 的ppt ext 的pptext 的pptext 的ppt

    var form = new Ext.form.FormPanel({ title: ' 用户登录 ', frame: true, items: [textfield], renderTo: document.body }); ``` 方法二是直接在FormPanel配置中定义items,像这样: ```javascript var form ...

    Ext 3.x 文件批量上传

    在Ext中,我们可以使用`Ext.form.FormPanel`来定义表单,并通过`Ext.form.FileField`(也称为`FileUploadField`)添加文件选择功能。此字段允许用户选择一个或多个文件,并触发上传操作。 `说明.txt`文件可能包含了...

    struts+extjs实现UploadDialog

    为了创建一个UploadDialog,你可以使用`Ext.window.Window`或`Ext.container.Viewport`来创建一个弹出窗口,里面包含一个`Ext.form.FormPanel`,并在其中添加`FileField`。当用户选择文件并点击提交按钮时,ExtJS会...

Global site tag (gtag.js) - Google Analytics