12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- ---
- title: Using Grid With Inline Data
- order: 33
- layout: page
- ---
-
- [[using-grid-with-inline-data]]
- = Using Grid with inline data
-
- Instead of using a Vaadin Container as explained in
- <<UsingGridWithAContainer#
- using-grid-with-a-container,Using Grid With a Container>>,
- you can also directly add simple inline data to Grid without directly
- using a Container.
-
- After creating a Grid instance, the first thing you need to do is to
- define the columns that should be shown. You an also define the types of
- the data in each column - Grid will expect String data in each column
- unless you do this.
-
- [source,java]
- ....
- grid.addColumn("Name").setSortable(true);
- grid.addColumn("Score", Integer.class);
- ....
-
- The columns will be shown in the order they are added. The `addColumn`
- method does also return the created `Column` instance, so you can go ahead
- and configure the column right away if you want to.
-
- When you have added all columns, you can add data using the
- `addRow(Object...)` method.
-
- [source,java]
- ....
- grid.addRow("Alice", 15);
- grid.addRow("Bob", -7);
- grid.addRow("Carol", 8);
- grid.addRow("Dan", 0);
- grid.addRow("Eve", 20);
- ....
-
- The order of the arguments to `addRow` should match the order in which the
- columns are shown. It is recommended to only use `addRow` when
- initializing Grid, since later on e.g. `setColumnOrder(Object...)` might
- have been used to change the order, causing unintended behavior.
-
- Grid will still manage a `Container` instance for you behind the scenes,
- so you can still use Grid API that is based on `Property` or `Item` from the
- `Container` API. One particularly useful feature is that each added row
- will get an `Integer` item id, counting up starting from 1. This means
- that you can e.g. select the second row in this way:
-
- [source,java]
- ....
- grid.select(2);
- ....
-
- [[full-example]]
- Full example
- ^^^^^^^^^^^^
-
- Putting all these pieces together, we end up with this class.
-
- [source,java]
- ....
- import com.vaadin.annotations.Theme;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.shared.ui.grid.HeightMode;
- import com.vaadin.ui.Grid;
- import com.vaadin.ui.UI;
-
- @Theme("valo")
- public class ShowingInlineDataInGrid extends UI {
-
- @Override
- protected void init(VaadinRequest request) {
- final Grid grid = new Grid();
-
- grid.addColumn("Name").setSortable(true);
- grid.addColumn("Score", Integer.class);
-
- grid.addRow("Alice", 15);
- grid.addRow("Bob", -7);
- grid.addRow("Carol", 8);
- grid.addRow("Dan", 0);
- grid.addRow("Eve", 20);
-
- grid.select(2);
-
- grid.setHeightByRows(grid.getContainerDataSource().size());
- grid.setHeightMode(HeightMode.ROW);
-
- setContent(grid);
- }
- }
- ....
|