我正在尋找一種方法來繪製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. Get CheckboxGroup(或RadioGroup)的值[EXTJS 3.4]
- 2. 工具提示checkboxGroup或radioGroup重複控制
- 3. 渲染RadioGroup元素
- 4. Ajax方法呈現多個元素
- 5. html2canvas插入多個元素呈現
- 6. 渲染GXT元素
- 7. React中HTML元素的條件呈現?
- 8. 如何呈現多個列中的form.as_table
- 9. 元素呈現無佈局
- 10. Vue元素未呈現
- 11. 呈現新元素onClick
- 12. 如何使用json數據中的VueJs呈現列表元素
- 13. h:selectOneMenu呈現的select元素的默認大小是多少?
- 14. 呈現爲對象的React元素
- 15. JavaScript呈現kbd標記的元素
- 16. jQuery的元素不會呈現
- 17. 未在摺疊下呈現的元素
- 18. 呈現DOM元素的時間
- 19. 使用WebKit(或Gecko)查找呈現的HTML元素位置
- 20. HTMLTextWriter在頁面中間呈現元素
- 21. 如何在ListView或FlatList中呈現absoulute元素?
- 22. 使用Ajax呈現具有多個tbody元素的HTML表格
- 23. Jquery的性能可拖動元素與重新呈現元素
- 24. MVVMCross中的RadioGroup實現
- 25. 如何在canvas元素中重新呈現html元素
- 26. gtk_tree_store如何添加未呈現爲列的元素
- 27. 在JavaScript中呈現數組中的所有元素的錯誤
- 28. 將呈現的元素存儲在CakePHP中的變量中
- 29. 添加新元素或更新數組中的現有元素
- 30. 僞元素「:」之後「或」:之前「不在angular2應用上呈現