0

当我将字符串列表传递给 selectionCell 时,第一个元素将被选为默认值,如何更改默认值?例如,在运行时,我希望将项目index=i视为默认值。

4

3 回答 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 回答