当我将字符串列表传递给selectionCell时,第一个元素将被选为默认值,如何更改默认值?例如,在运行时,我希望将index=i
处的项目视为默认值。
答案 0 :(得分: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
}
};
答案 1 :(得分: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
。
设置模型的属性后,所有Cell表和co都有责任将值设置到选择单元格中。
答案 2 :(得分:0)
我有一个在运行时更改SelectionCell值的实际示例。我想要列出每行要执行的操作。选择(并执行)动作后,我希望将select设置回默认值。
DbContext : IdentityDbContext<ApplicationUser>
请注意,该操作已在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
)触发它。