SelectionCell中的默认选项

时间:2013-02-27 10:27:36

标签: gwt

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

3 个答案:

答案 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)触发它。