注:此文需要的一些JSON的转换方法引用之前写的(C#中的EXT相关操作类一文)
下面是一个简单的EXT表单的内容,里面有textbox,combox,time时间控件,textarea四种格式。其中时间格式DateTimeField是一个扩展的控件,可以精确到秒,可以在网上下载其JS和相关文件。
首先在页面引入相关的JS文件,并定义一个DIV。首页代码如下[注意EXT的JS引用的顺序]:
FORM表单的JS代码如下:
其中JBCombox为下拉菜单,初始store,需要写hiddenName:这个属性,以便在后台能接收到下拉菜单中的VALUE值。
页面后台的代码处理,包括两个保存和初始化下拉菜单的方法,最后返回的是JSON格式的字符串。
页面的效果图如下:
-------------------------------------------------------------------------------------------------------------------
如果想要初始化此FORM表单的话,有两种方法:
方法1.在FORM表单加载的时候,启动load方法中的'load'事件,传递一个action来获得FORM表单的值,此时FORM表单读取数据的方法还是JsonReader.以读取传回来的DATATABLE的JSON格式数据。注:此时FORM加载到DIV,可以在FORM定义的外部使用FORM.render()方法,也可以在内部使用renderTo属性来实现。
方法2.FORM表单的store的初始化在外面,FORM中可以不用定义store:的属性,在外面定义的store的autoLoad:true,.定义完成之后,给stroe定义一个监听方法addListener('load',setContent),然后在外面定义setContent方法,在方法里获取FORM各个FIELD的ID,然后赋值。注:FROM的各个控件可用Ext.getCmp()方法来获得,但是下拉菜单直接用在外面定义的菜单的名称即可,不用定义ID,或name.此方法中FORM加载到DIV必须在FORM的属性renderTo中定义。[下面注释代码为第二种方法]
两种方法从后台获取数据的buildContent的方法代码如下:注意因为textarea里面有换行,需要进行转义 temp = temp.Replace("/r/n", "//n");//转换格式
初始化效果图如下: