我正在寻找一种方法来绘制GXT(GWT-Ext)RadioGroup或CheckBoxGroup的元素,而不是单列(Orientation.VERTICAL)或单行(Orientation.HORIZONTAL)以外的布局。我看到in ExtJS 3.0, RadioGroups and CheckBoxGroups are easily rendered in multiple columns。但是,配置似乎无法在GXT中访问。有什么我在这里失踪?如果没有“简单”解决方案,是否有办法为RadioGroup或CheckBoxGroup编写自定义渲染器?从com.extjs.gxt.ui.client.widget.form.MultiField
呈现多列中的GXT RadioGroup或CheckBoxGroup的元素?
3
A
回答
1
com.extjs.gxt.ui.client.widget.form.CheckBoxGroup
继承它说在其API page说
显示在一个单一的行或列的多个字段的字段。
因此,我认为当谈到一个'简单'解决方案时,你倒霉了。有了复选框,我认为你可以用多个CheckboxGroups和hbox/vbox或列布局来伪装它,但是我认为它不适用于多个RadioGroup,因为分组Radios有更多的意义(在哪些是互斥的方面)。
0
不知道你正在寻找的物品的最终分配,我不知道这是否适合你;然而,你有没有想过:创建一个大的RadioGroup或CheckBoxGroup,然后根据需要使单个单选按钮/复选框不可见,以获得你想要的模式?
如果您正在查找多列,请说出三列,每列四个按钮,然后使用三组四个按钮并排排列。然后为每个组写一个OnClick()或OnSelect()事件(假设存在)来管理这三个组,就像它们一样。这对于复选框来说应该是微不足道的,而对于单选按钮来说更复杂一点,因为一次只能选择一个单选按钮。
R-1 R-2 R-3
+---++---++---+
| o || o || o |
| o || o || o |
| o || o || o |
| o || o || o |
+---++---++---+
// psudocode
form.onLoad()
{
r1.selected = none;
r2.selected = none;
r3.selected = none;
selection = none;
}
r1.OnClick()
{
selection = r1.selected;
r2.selected = none;
r3.selected = none;
}
r2.OnClick()
{
r1.selected = none;
selection = r2.selected;
r3.selected = none;
}
r3.OnClick()
{
r1.selected = none;
r2.selected = none;
selection = r3.selected;
}
1
您可以为网格中的每列实施GridCellRenderer
,每列对应一个radiogroup选项。这将适用于GXT:
public class MyRenderer implements GridCellRenderer {
public Radio render(ModelData model, String columnChoice, ColumnData config,
int rowIndex, int colIndex, ListStore store, Grid grid) {
Something something = ((Something) model).getSomething();
Radio radio = new Radio();
// we want one radioGroup per row:
radio.setName("radioButton" + rowIndex);
// set value depending on some property in the model corresponding to a
// column
if (something != null && something.getChoice().equals(columnChoice)) {
radio.setValue(true);
}
return radio;
}
}
0
我知道这个问题是2岁,但我发现解决方案:-)。 重点是添加无线电收音机,而不是RadioButton。一些示例:
final RadioGroup outputType = new RadioGroup("outputType");
Radio pdf = new Radio();
Radio docx = new Radio();
Radio rtf = new Radio();
Radio ods = new Radio();
outputType.add(pdf);
outputType.add(docx);
outputType.add(rtf);
outputType.add(ods);
//this goes
panel.add(pdf);
panel.add(docx);
panel.add(rtf);
panel.add(ods);
//instead of this
panel.add(outputType);
我希望这将帮助任何人:)
0
这是你的类的构造函数的简单的例子,应该扩展万事<的CheckBox>类。
public MyClass (String[] items, int columnsNumber) {
setOrientation(Style.Orientation.HORIZONTAL);
setSpacing(0);
if (items != null) {
final CheckBoxGroup[] columns = createColumns(columnsNumber);
int i = 0;
for (String item : items) {
CheckBox check = new CheckBox();
check.setBoxLabel(item);
columns[i++ % columnsNumber].add(check);
CLogger.info("Checkbox added for: " + item);
}
for (CheckBoxGroup column : columns) {
add(column);
}
}
}
private CheckBoxGroup[] createColumns(int columnsNumber) {
CheckBoxGroup[] columns = new CheckBoxGroup[columnsNumber];
for (int i = 0; i < columns.length; i++) {
columns[i] = new CheckBoxGroup();
columns[i].setOrientation(Style.Orientation.VERTICAL);
columns[i].setSpacing(0);
}
return columns;
}
是你想要吗?
相关问题
- 1. 工具提示checkboxGroup或radioGroup重复控制
- 2. Ajax方法呈现多个元素
- 3. React中HTML元素的条件呈现?
- 4. 呈现新元素onClick
- 5. Vue元素未呈现
- 6. 如何使用json数据中的VueJs呈现列表元素
- 7. 呈现为对象的React元素
- 8. 未在折叠下呈现的元素
- 9. jQuery的元素不会呈现
- 10. 使用WebKit(或Gecko)查找呈现的HTML元素位置
- 11. HTMLTextWriter在页面中间呈现元素
- 12. MVVMCross中的RadioGroup实现
- 13. gtk_tree_store如何添加未呈现为列的元素
- 14. 将呈现的元素存储在CakePHP中的变量中
- 15. 在JavaScript中呈现数组中的所有元素的错误
- 16. 添加新元素或更新数组中的现有元素
- 17. 伪元素“:”之后“或”:之前“不在angular2应用上呈现
- 18. JSON比较元素或现有元素
- 19. 在非呈现的JSF元素中的EL评估
- 20. 如何在浏览器中呈现PDF元素上的HTML元素
- 21. 如何在“submit”元素的包装中呈现Drupal表单“标记”元素?
- 22. 反应不呈现子元素
- 23. 元素没有在角度呈现
- 24. -moz-document元素CSS未呈现
- 25. 元素数量,更新和呈现
- 26. Zend_Form元素呈现错误顺序
- 27. 沿着Z轴呈现HTML元素
- 28. 在元素呈现之前设置jqueryui
- 29. XSD:检查特定值元素呈现
- 30. ASP.NET MVC:可选呈现元素属性