dorado:AutoForm中的灵活布局!
dorado:AutoForm中的灵活布局!
(2011-02-21 12:00:04)
标签:
it |
场景描述:
本例使用AuotForm组件实现不同的排版布局,以实现应用当中遇到不同的需求。
实例实现:
实现1:
功能:
使用 checkBox控制文本框是否可以进行编辑。
界面:
实现步骤:
- 在viewmodel中添加多个textEditor、fieldLabel和checkBox,并绑定dataset1(Dataset)相应的Field。在AutoForm添加ElementRenderer,这样在JSP中使用d:FormElementRenderer标签就可以添加任何元素到AutoForm中
JSP中代码如下:
<d:AutoForm id="form1"> <d:FormElementRenderer group="group1"element="element1"> <table id="form1_group1_table1" width="100%"class="InnerTable" style="table-layout:fixed;" cellpadding="4"cellspacing="0" border="0"> <colgroup> <col width="47"/> <col width="50"/> <col width="50%"/> <col width="50"/> <col width="50"/> <col width="50%"/> </colgroup> <tr> <td class="InnerTableLabelCell" align="right"><d:CheckBox id="editor3"/></td> <td class="InnerTableLabelCell" align="right"><d:FieldLabel id="fieldlabel4"/></td> <td class="InnerTableLabelCell"><d:TextEditor id="editor4"/></td> <td class="InnerTableLabelCell" align="right"><d:CheckBox id="editor5"/></td> <td class="InnerTableLabelCell" align="right"><d:FieldLabel id="fieldlabel6"/></td> <td class="InnerTableLabelCell"><d:TextEditor id="editor6"/></td> </tr> <tr> <td class="InnerTableLabelCell" align="right"><d:CheckBox id="editor7"/></td> <td class="InnerTableLabelCell" align="right"><d:FieldLabel id="fieldlabel8"/></td> <td class="InnerTableLabelCell"><d:TextEditor id="editor8"/></td> <td class="InnerTableLabelCell" align="right"><d:CheckBox id="editor9"/></td> <td class="InnerTableLabelCell" align="right"><d:FieldLabel id="fieldlabel10"/></td> <td class="InnerTableLabelCell"><d:TextEditor id="editor10"/></td> </tr> </table> </d:FormElementRenderer> </d:AutoForm> |
- 在dataset1(Dataset)的afterChange事件中控制相应字段的只读状态。代码如下:
switch (field.getName()){
case "field3":
dataset.getField("field4").setReadOnly(!record.getValue("field3"));
break;
case "field5":
dataset.getField("field6").setReadOnly(!record.getValue("field5"));
break;
case "field7":
dataset.getField("field8").setReadOnly(!record.getValue("field7"));
break;
case "field9":
dataset.getField("field10").setReadOnly(!record.getValue("field9"));
break;}
dataset.refreshControls();实现2:
功能:
使用AutoForm本身的属性进行布局,其中包括使用FormGroup的columnCount属性、FormGroup中Element的colSpan属性和rowSpan属性。
界面:
实现代码:
<Control id="form2" type="AutoForm"dataset="dataset2">
<FormGroup name="group1" columnCount="3"title="<b>行列布局</b>">
<Element field="field1" type="TextEditor"name="field1">
<FieldLabel />
<TextEditor />
</Element>
<Element field="field2" type="TextEditor"name="field2">
<FieldLabel />
<TextEditor />
</Element>
<Element field="field3" type="TextEditor"name="field3">
<FieldLabel />
<TextEditor />
</Element>
<Element field="field4" type="TextEditor"name="field4" colSpan="2">
<FieldLabel />
<TextEditor />
</Element>
<Element field="field5" type="TextEditor"name="field5" rowSpan="3">
<FieldLabel />
<TextEditor height="80px" editorType="textarea"/>
</Element>
<Element field="field6" type="TextEditor"name="field6" colSpan="2">
<FieldLabel />
<TextEditor />
</Element>
<Element field="field7" type="TextEditor"name="field7">
<FieldLabel />
<TextEditor />
</Element>
<Element field="field8" type="TextEditor"name="field8">
<FieldLabel />
<TextEditor />
</Element>
</FormGroup>
</Control>实现3.
功能:
同一个AutoForm的多个Group的布局,使用AutoForm本身firstGroupAsHeader、lastGroupAsFooter与layout属性实现。
界面:
实现代码:
<Control id="form3" type="AutoForm"dataset="dataset2" firstGroupAsHeader="true"lastGroupAsFooter="true" layout="horizontal">
……
……
……
</Control>实现4.
功能:
在AutoForm中的Element后添加元素。
界面:
实现代码:
AutoForm中field1(TextEditor)的onActive事件代码如下:
var pn=editor.parentNode;
var btnQuery=document.createElement_x_x("button");
btnQuery.innerText="查询";
btnQuery.style.width="70px";
btnQuery.style.height="18px";
btnQuery.className="Button";
btnQuery.onclick=function(){
alert("查询噢~");
};
pn.a(btnQuery);field2(TextEditor)的onActive事件代码如下:
var pn=editor.parentNode;
var label=document.createElement_x_x("label");
label.innerHTML="<b>%</b>";
label.style.width="70px";
label.style.height="18px";
pn.a(label);延伸思路:
其实AutoForm在布局方面还是比较灵活的,只要能正确使用其中的组件都可以满足我们的应用需求,更多的方法等待您的发现。
dorado:AutoForm中的灵活布局!相关推荐
- Android中动态初始化布局参数以及ConstraintLayout使用中遇到的坑
Android中动态初始化布局以及ConstraintLayout遇到的一个坑 ConstraintLayout是Android中的一个很强大的布局,它通过控件之间的相对定位,来完成一个layout中 ...
- android 继承relativelayout,Android开发中RelativeLayout相对布局
Android开发中RelativeLayout相对布局 RelativeLayout布局是Android界面布局中应用最广也最强大的一种布局,其不只十分灵活,能够解决开发中各类界面布局需求,同时也很 ...
- java swt gridlayout_关于SWT中的GridLayout布局方式
GridLayout 布局的功能非常强大,也是笔者常用的一种布局方式.GridLayout是网格式布局,它把父组件分成一个表格,默认情况下每个子组件占据一个单元格的空间,每个子组件按添加到父组件的顺序 ...
- 三分钟学会css3中的flexbox布局
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章里我们将学习CSS里flexbox布局的几个最重要的概念,通过学习flexbox布局,你会发现以往遇到的所有的关于布局 ...
- 【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件
文章目录 一.创建 XML 布局文件 二.XML 布局文件中添加子组件 三.创建 Ability 四.配置 Ability 五.Ability 加载布局文件 六.完整代码及效果展示 四.GitHub ...
- android界面布局题,【填空题】Android 系统中, 用于定义布局显示在界面上的风格。...
[填空题]Android 系统中, 用于定义布局显示在界面上的风格. 更多相关问题 [37]A.anotherB.each otherC.the otherD.one another Tabor ma ...
- Android中的约束布局
文章目录 1 Android中的约束布局 1.1 约束布局的重要属性 1.2 约束布局示例 1 Android中的约束布局 1.1 约束布局的重要属性 重要属性: app:layout_constra ...
- Android中的网格布局
文章目录 1 Android中的网格布局 1 Android中的网格布局 重要属性: android:rowCount(行数量) android:columnCount (列数量) android:l ...
- Android中的表格布局
文章目录 1 Android中的表格布局 1 Android中的表格布局 重要属性: android:stretchColumns android:shrinkColumns android:coll ...
最新文章
- Docker学习笔记_安装ActiveMQ
- c:数据结构-线性表
- OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
- Java虚拟机JVM简单理解
- (React 框架)React技术
- 《Internet 路由结构(第2版•修订版)》一7.5 常见问题
- C语言家谱管理程序,课内资源 - 基于C语言实现的家谱管理系统
- 桌面云的四大协议解析
- mbot编程机器人怎么连接蓝牙_台式机蓝牙怎么连接
- 【易实战】Spring Cloud Greenwich Ribbon:负载均衡的服务调用
- 容器精华问答 | Docker是否比虚拟技术要好?
- Ubuntu 16.04部署ROS bridge服务器流程
- Pytorch中的einsum
- Vue3实现打字机效果
- 实习周记(附):学习笔记
- Linux 磁盘管理-分区管理-磁盘修复-断电导致磁盘损坏【fsck】修复异常磁盘
- 2022R2移动式压力容器充装操作考试题及在线模拟考试
- 网教9. 一夜发白《千字文》
- 怎样使用MFC 调用windows系统程序 windows media player
- python英文诗歌统计_Python-Data-mining-Tutorial