Skip to end of metadata
Go to start of metadata

 效果预览

定义方法

XML定义

JSON定义

重要属性说明

layout

layout提供了两种选择,分别表示是横向布局RadioButton还是纵向布局RadioButton,效果图如下:

flow

vertical

value

RadioGroup会根据value属性激活对应的RadioButton的选中状态

技巧

技巧一:JS动态声明RadioButton

技巧二:利用PropertyDef的mapping机制定义RadioButton

大多数的情况下我们都会定义DataType,并利用AutoForm和DataGrid做编程,在这种情形下,对于内部的AutoFormElement和DataColumn元素,如果我们希望以RadioGroup形式展现除了上述明确定义RadioGroup的方式之外,还有另一种更好的方法:

我们知道PropertyDef支持mapping的设定,这儿介绍如何利用这个特性生成RadioGroup中的buttons,首先定义Mapping:

分两种使用场景:

场景一:AutoFormElement

在AutoForm中与propertyDef1绑定的AutoFormElement,如果希望将上述的mapping设定作为自身的RadioButton元素,则只要设定其editorType属性为RadioGroup即可,如图:

场景二:DataColumn

在DataGrid中与propertyDef1绑定的DataColumn,如果希望将上述的mapping设定作为自身的RadioButton元素,则需要设定其renderer属性为dorado.widget.grid.RadioGroupCellRenderer,如图:

另外在mapping的技术中,我们知道mapping中的内容是可以利用DataProvider技术动态生成的,这样我们还能利用mapping技术的这种特征动态的从数据库中的一张物理表中动态生成RadioButton元素.

有关mapping的dataProvider技术参考:快速入门的mapping技术讲解(http://wiki.bsdn.org/display/d7training/01.+mapping)

技巧三:DataColumn中不同行有不同的RadioButton,效果如图:

上图这种效果,我们就无法通过技巧二中的mapping技术解决,这个时候可以考虑利用DataGrid中的自定义DataColumn的renderer技术实现。技巧二的场景二使用了Dorado默认提供的dorado.widget.grid.RadioGroupCellRenderer控件,现在我们尝试自己创建一个renderer控件:

其中getEditor方法是一个自定义的方法,它将根据entity中的数据动态创建不同的RadioButton,如:

这样最后我们只要设置DataColumn的render属性为这个新建的CellRenderer对象就可以,如:

Labels
  • No labels