跟我一起学extjs5(25--模块Form的自己定义的设计[3])

        自己定义的Form已经能够执行了,以下改一下配置,把Form里面的FieldSet放在Tab之下。改动一下ModuleModel.js中的data下的tf_FormSchemes下的方案,添加一个属性。


        上面设置好了以后,能够看到Form中FieldSet都放置在Tab中了,以下的截图展示了二个Tab的界面。


        从理论上说,假设你的Form配置信息设置得合理,能够得到你想要的不论什么样式的Form。但在实际应用的时候,我们仅仅要完毕大部分能自己主动生成就足够了,真正程序中有超级变态复杂的Form结构,能够自己编脚本生成。上面的代码和演示样例仅仅是展示了怎样自己定义一个Form,要能够真正的适用还得做非常多工作,对于刚開始学习的人或者经验还不是非常丰富的程序猿来说,这把这个当成一个拓展视野的样例看看即可了。

        上面是一个编辑的窗体,数据编辑了以后要保存回model中,这个保存没实用到MVVM特性,我直接写在BaseForm.js中的button控件里了。
				this.buttons.push({
text : '保存',
itemId : 'save',
glyph : 0xf0c7,
handler : function(button){
button.up('form').getForm().updateRecord();
}
},{
text : '关闭',
itemId : 'close',
glyph : 0xf148,
handler : function(button){
button.up('window').hide();
}
});

一个Form在用loadRecord(model)函数从model中调用数据后,能够用getRecord()来返回model,在数据改动了以后能够直接用updateRecord()来用form中的值更新到model中。

        在保存的handler中运行了这条语句:button.up('form').getForm().updateRecord();
给刚開始学习的人讲一下,button.up('form'),就是从这个button的第一个父容器開始一直往上递归,直到找到form为止,这是一个很好的依据控件找到另一个控件的办法,建立大家都用这样的方法来查找控件,不要用getCmp(id) 的这样的直接查找的方式。与up相应的另一个down方法,是查找本控件的子控件的函数。上例中增加了这种方法之后,就能够保存数据了。



        




跟我一起学extjs5(25--模块Form的自己定义的设计[3])的更多相关文章

  1. 跟我一起学extjs5(22--模块Form的自己定义的设计)

    跟我一起学extjs5(22--模块Form的自己定义的设计)         前面几节完毕了模块Grid的自己定义,模块Form自己定义的过程和Grid的过程类似,可是要更复杂一些.先来设计一下要完 ...

  2. 跟我一起学extjs5(24--模块Form的自己定义的设计[2])

    跟我一起学extjs5(24--模块Form的自己定义的设计[2])         在本节中将要增加各种类型的字段,在增加字段的时候因为能够一行增加多个字段,因此层次结构又多了一层fieldcont ...

  3. 跟我一起学extjs5(11--自己定义模块的设计)

    跟我一起学extjs5(11--自己定义模块的设计)        从这一节開始我们来设计并完毕一个自己定义模块.我们先来确定一个独立的模块的所能定义的一些模块信息. 下面信息仅仅是我自己在开发过程中 ...

  4. 跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)

    跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)         上面设计好了一个模块的主界面,以下通过菜单命令的运行来把这个模块增加到主界面其中. 在MainModule. ...

  5. 跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])

    跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])         写了几个月,总算有点盼头了,最终要从后台取得数据了.后台的spring mvc 和 service 仅仅能简单的 ...

  6. 跟我一起学extjs5(42--单个模块的数据新增方式)

    跟我一起学extjs5(42--单个模块的数据新增方式)         前面的章节中已经增加了一个自己定义的模块,而且能够进行数据的新增.改动.删除的操作了,在这个基础上就能够大作文章了. 这一节来 ...

  7. 22、手把手教你Extjs5(二十二)模块Form的自定义的设计[1]

    下面开始设计和完成一个简单的Form的自定义过程.先准备数据,在ModuleModel.js中的data属性下面,加入自定义Form的参数定义,下面的代码中定义了一个新的属性tf_formScheme ...

  8. 21、手把手教你Extjs5(二十一)模块Form的自定义的设计

    前面几节完成了模块Grid的自定义,模块Form自定义的过程和Grid的过程类似,但是要更复杂一些.先来设计一下要完成的总体目标. 1、可以有多个Form方案,对应于显示.新增.修改.审核.审批等功能 ...

  9. 跟我一起学extjs5(18--模块的新增、改动、删除操作)

    跟我一起学extjs5(18--模块的新增.改动.删除操作)         上节在Grid展示时做了一个金额单位能够手工选择的功能,假设你要增加其它功能.也仅仅要依照这个模式来操作即可了,比方说你想 ...

随机推荐

  1. 我用过的Linux命令--关闭防火墙

    关闭防火墙: 防火墙的弄能是限制某一些端口的使用,可以通过linux命令关系它,相应的指令: 查看防火墙信息: #service iptables status 就能看到防火墙的状态: 关闭防火墙: ...

  2. <转>java编译问题:使用了未经检查或不安全的操作

    使用了未经检查或不安全的操作 在本人用editplus写java文件时碰到的问题.      源代码 import java.util.*; class collection{ public stat ...

  3. ipc$爆破密码

    FOR /L %%i IN (1,1,99) DO net use \\192.168.1.1\ipc$ /user:test %%i && echo %%i>1.txt

  4. 读书笔记: 深入浅出node.js

    >> 深入浅出node.js node.js是c++编写的js运行环境 浏览器: 渲染引擎 + js引擎 后端的js运行环境 node.js用google v8引擎,同时提供很多系统级的A ...

  5. 给内置对象或自定义对象添加存取器属性(getter setter)的方法总结

    funct = { get: function() { return this._x }, set: function(value) { this._x = value } } function Ob ...

  6. ThreadSafeClientConnManager用来支持多线程的使用http client

    import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.clien ...

  7. Python的MySQLdb模块安装,连接,操作,增删改

    1. 首先确认python的版本为2.3.4以上,如果不是需要升级python的版本     python -V   检查python版本 2. 安装mysql, 比如安装在/usr/local/my ...

  8. Java Date 和 Calendar

    Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分.日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算 ...

  9. UITextField align left margin

    如果我们想让我们的UITextField输入的字体偏移几个像素,我们常常用空格来代替,有时候我们不想用空格的话怎么办? #import <UIKit/UIKit.h> @interface ...

  10. vs2013 linq to mysql

    安装文件 1.下载安装文件 2.创建项目 3.创建mysql数据连接 4.新建ADO.NET数据模型 项目实现代码 using (WorkerContainer db = new WorkerCont ...