当我将字符串列表传递给 selectionCell 时,第一个元素将被选为默认值,如何更改默认值?例如,在运行时,我希望将项目index=i
视为默认值。
问问题
687 次
3 回答
0
无法在该单元格中设置索引
你只能在那里使用 String
SelectionCell statusOptionsCell = new SelectionCell(statusType);
Column<InvitedUser, String> statusColumn = new Column<Object, String>(
statusOptionsCell) {
@Override
public String getValue(Object object) {
return object.getStatus(); //value set at runtime
}
};
如果你只需要数组
String[] myaaray= {"one","two","three"};
SelectionCell statusOptionsCell = new SelectionCell(statusType);
Column<InvitedUser, String> statusColumn = new Column<Object, String>(
statusOptionsCell) {
@Override
public String getValue(Object object) {
return st[1]; //pass integer as i here at runtime
}
};
于 2013-02-27T10:55:26.297 回答
0
选择单元格用于单元格小部件。因此,让我们以 CellTable 为例。在单元格表中,每一行对应一个记录,即一个模型/POJO。每列对应于模型/POJO 中的一个属性。因此,您的选择单元格列应绑定到模型中的一个属性。
Set that property's value to whatever you want as a default value before supplying that model to the Cell Table
.
一旦你设置了模型的属性,它的所有单元格表和共同的责任将值设置到选择单元格中。
于 2013-02-27T14:34:57.203 回答
0
我有一个在运行时更改 SelectionCell 值的真实示例。我想要为每一行执行可能的操作列表。选择(并执行)一个操作后,我希望将选择设置回它的默认值。
ArrayList<String> options = new ArrayList<String>();
options.add("Choose...");
options.add("Action 1");
options.add("Action 2");
final SelectionCell cell = new SelectionCell(options);
Column<MyObject, String> column = new Column<MyObject, String>(cell) {
@Override
public String getValue(MyObject object) {
return null;
}
};
column.setFieldUpdater(new FieldUpdater<MyObject, String>() {
@Override
public void update(final int index, MyObject object, String value) {
// perform selected action
// action name is stored in the `value` parameter
// ...
// back to default value
cell.clearViewData(object);
// ... or back to other value
// cell.setViewData(object, "Action 1");
table.redrawRow(index);
}
});
table.addColumn(column, "Test");
请注意,该操作与update
方法挂钩,因此仅当所选值发生更改时才会触发该操作。它永远不会以默认值 ( "Choose..."
) 触发。
于 2015-07-07T22:13:48.317 回答