ExtJs2.0学习系列(4)--Ext.FormPanel之第一式

ExtJs2.0学习系列(4)--Ext.FormPanel之第一式

上篇中我们讨论了Ext.window的简单使用,今天我们要看看强大的FormPanel,也是继承panel组件的使用。
首先弄清楚这个问题,创建的时候: 
// 查看源代码便知,两种方法是一样的
Ext.form.FormPanel  =  Ext.FormPanel;
我们还是从最简单的代码实例开始吧:
<!-- html代码 -->
< body >
< div  id ="form1" ></ div >
</ body >

// js代码
var  form1  =   new  Ext.form.FormPanel({
       width:
350 ,
       frame:
true , // 圆角和浅蓝色背景
       renderTo: " form1 " , // 呈现
       title: " FormPanel " ,
       bodyStyle:
" padding:5px 5px 0 " ,
       items:[
          {
            fieldLabel:
" UserName " , // 文本框标题
            xtype: " textfield " , // 表单文本框
            name: " user " ,
            id:
" user " ,
            width:
200
          },
          {
            fieldLabel:
" PassWord " ,
            xtype:
" textfield " ,
            name:
" pass " ,
            id:
" pass " ,
            width:
200
          }
       ],
       buttons:[{text:
" 确定 " },{text: " 取消 " ,handler: function (){alert( " 事件! " );}}]
    });

都是通过items属性参数把表单元素添加到这个表单中。
我们发现两个文本框的类型和狂度是一样的,我们还可以把items里面的相同项提取出来,以简化代码:
// 简化代码,和上面的代码效果一样
var  form1  =   new  Ext.form.FormPanel({
       width:
350 ,
       frame:
true ,
       renderTo:
" form1 " ,
       title:
" FormPanel " ,
       bodyStyle:
" padding:5px 5px 0 " ,
       defaults:{width:
200 ,xtype: " textfield " },//*****简化****//
       items:[
          {
            fieldLabel:
" UserName " ,
            
// xtype:"textfield",
            name: " user " ,
            id:
" user " ,
            
// width:200
          },
          {
            fieldLabel:
" PassWord " ,
            
// xtype:"textfield",
            name: " pass " ,
            id:
" pass " ,
            inputType:
" password " ,
            
// width:200
          }
       ],
       buttons:[{text:
" 确定 " },{text: " 取消 " ,handler: function (){alert();}}]
    });
关于inputType,参数如下:
// input的各种类型(这个大家都知道,就只列了几个典型的)
radio
check
text(默认)
file
password等等
关于FormPanel的配置参数,请主要参考panel的参数,这里列举另外两个:
1 .labelAlign:fieldlabel的排列位置,默认为 " left " ,其他两个枚举值是 " center " , " right "
2 .labelWidth:fieldlabel的占位宽
3 .method: " get " " post "
4 .url: " 提交的地址 "

5 .submit:提交函数  // 稍后我们一起详细分析
因为内容太多,我们先看一个例子。
1.FormPanel的fieldset应用
// 把前面代码重写items属性
items:[
          {
            xtype:
' fieldset ' ,
            title: 
' 个人信息 ' ,
            collapsible: 
true ,
            autoHeight:
true ,
            width:
330 ,
            defaults: {width: 
150 },
            defaultType: 
' textfield ' ,
            items :[{
                    fieldLabel: 
' 爱好 ' ,
                    name: 
' hobby ' ,
                    value: 
' www.cnblogs.com '
                },{
                    xtype:
" combo " ,
                    name: 
' sex ' ,
                    store:[
" " , " " , " 保密 " ],//数据源为一数组
                    fieldLabel:
" 性别 " ,
                    emptyText:
' 请选择性别. '
                }]
            }
       ]

这里的combox组件只是简单的演示,具体还是要深入了解,我们会在以后的内容中详细探讨。
2.关于xtype的类型,在extjs的form表单(其他的请参考api)中已经定义的有:
Form components
---------------------------------------
form             Ext.FormPanel
checkbox         Ext.form.Checkbox
combo            Ext.form.ComboBox
datefield        Ext.form.DateField
field            Ext.form.Field
fieldset         Ext.form.FieldSet
hidden           Ext.form.Hidden
htmleditor       Ext.form.HtmlEditor
label            Ext.form.Label
numberfield      Ext.form.NumberField
radio            Ext.form.Radio
textarea         Ext.form.TextArea
textfield        Ext.form.TextField
timefield        Ext.form.TimeField
trigger          Ext.form.TriggerField
不早了,FormPanel还有很多的东西要了解,但是今天不能再讲了,太多了,大家都没有兴致看下去,明天继续。
extjs的东西很庞大,但是还没有一个人用中文系统的分析写文章,所以资料都很可贵,现在我想做这件事,请大家多多支持,我才有动力,
才有激情,才能写出更好的下一片文章,让我们期待更精彩的next吧!
Tag标签: ExtJs2.0
posted @ 2008-06-30 01:48 谦虚的天下 阅读(2623) 评论(21)   编辑 收藏 所属分类: ExtJs学习系列

   回复   引用   查看     
#1楼  2008-06-30 04:23 | 布尔       
还有一些输入域布局等、事件等等。期待
   回复   引用     
#2楼  2008-06-30 08:38 | sdf [未注册用户]
没新意……
   回复   引用     
#3楼  2008-06-30 08:52 | 随风飘扬 [未注册用户]
Ext JS的确很庞大而且中文资料很少,严重支持楼主!期待下一篇大作!
   回复   引用   查看     
#4楼  [ 楼主]2008-06-30 08:57 | 谦虚的天下       
@sdf
什么才叫新意?
为了追求复杂的各种效果而做效果,我是不会那么做的,
把extjs基本的方方面面学会了,自己做些想要的效果也不是什么难事...
   回复   引用   查看     
#5楼  2008-06-30 09:00 | XeonWell       
支持楼主,BS 2楼
   回复   引用     
#6楼  2008-06-30 11:49 | TONY.chen [未注册用户]
不错,顺便诅咒下2楼的SB
   回复   引用   查看     
#7楼  2008-06-30 12:44 | 陛下       
共勉学习!
   回复   引用   查看     
#8楼  2008-06-30 16:04 | wuliangbo       
支持楼主,BS 2楼
   回复   引用     
#9楼  2008-06-30 22:38 | HJHJHJHJ [未注册用户]
支持楼主. 技术+分享.. 很难得. 支持你
BS 2楼
   回复   引用   查看     
#10楼  [ 楼主]2008-07-01 00:12 | 谦虚的天下       
extjs需要多人一起探索!
但是好像学习extjs的人不多啊!
   回复   引用     
#11楼  2008-07-01 08:05 | swjm119111111111111 [未注册用户]
很好,辛苦,能不能写写与数据库交互的例子
   回复   引用   查看     
#12楼  2008-07-01 08:06 | swjm119       
很好,辛苦,能不能写写与数据库交互的例子
   回复   引用   查看     
#13楼  [ 楼主]2008-07-01 09:49 | 谦虚的天下       
@swjm119111111111111
会的,后面一定写到,不过可能要等一段时间
   回复   引用     
#14楼  2008-07-01 14:21 | 无所谓-- [未注册用户]
我的毕业设计中有Ext与数据库交互的例子。谁想要我就贴一个。
   回复   引用   查看     
#15楼  [ 楼主]2008-07-01 14:24 | 谦虚的天下       
@无所谓--
请朋友贴出来,交流分享..
   回复   引用     
#16楼  2008-07-03 23:14 | 路过 [未注册用户]
写的很不错了 非常感谢你的分享
   回复   引用     
#17楼  2008-07-25 18:48 | kanhai [未注册用户]
太谢谢了!
   回复   引用     
#18楼  2008-07-27 20:27 | xiaozhao [未注册用户]
不错 我正在学习 希望多发表一些
   回复   引用     
#19楼  2008-07-30 15:06 | iomo [未注册用户]
其实是不错的学习资料,一个下午基本上把EXTJS的基础知识过了一遍。
看了作者的文档,感觉EXTJS学起来也相当简单。
再次感觉为EXTJS做贡献的你们
   回复   引用   查看     
#20楼  2008-08-18 15:18 | 菜鸟lincha       
顶 ,辛苦了
   回复   引用     
#21楼  2008-08-28 10:29 | shuishi007 [未注册用户]
支持楼主,鄙视SB
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值