gwt - celltable - adding extra row

后端 未结 3 840
走了就别回头了
走了就别回头了 2021-01-07 11:37

enter code hereI have a celltable and the columns contains some numbers. I want to add an extra row at the end of the table which will hold the total for each column. Is the

相关标签:
3条回答
  • 2021-01-07 12:16
    public void addNewRow(){                
    
        List<Contact> newContactLst = Arrays.asList(new Contact("TEST",
                  "Sample"));
    
        int numRows = table.getRowCount();
    
        table.setRowCount(numRows+1);
    
        table.setRowData(numRows,newContactLst);
    
    }
    
    0 讨论(0)
  • 2021-01-07 12:28

    Also I would suggest that you use the footer-Argument when you add the column: addColumn(Column col, Header header)

    0 讨论(0)
  • 2021-01-07 12:35

    When you mean totals im not quite sure what you mean but this is similiar to your code but I have added a button that will add the row you howeve can take this out and just add the row.

    /**
     * Entry point classes define <code>onModuleLoad()</code>.
     */
    public class TestGwt implements EntryPoint {
    
         private static class Contact {
                private final String address;
                private final String name;
    
                public Contact(String name, String address) {
                  this.name = name;
                  this.address = address;
                }
              }
    
        private static List<Contact> CONTACTS = Arrays.asList(new Contact("John",
        "123 Fourth Road"), new Contact("Mary", "222 Lancer Lane"), new Contact(
        "Zander", "94 Road Street"));
        /**
         * This is the entry point method.
         */
        public void onModuleLoad() {
             // Create a CellTable.
            final CellTable<Contact> table = new CellTable<Contact>();
    
            // Create name column.
            TextColumn<Contact> nameColumn = new TextColumn<Contact>() {
              @Override
              public String getValue(Contact contact) {
                return contact.name;
              }
            };
    
            // Make the name column sortable.
            nameColumn.setSortable(true);
    
            // Create address column.
            TextColumn<Contact> addressColumn = new TextColumn<Contact>() {
              @Override
              public String getValue(Contact contact) {
                return contact.address;
              }
            };
    
            // Add the columns.
            table.addColumn(nameColumn, "Name");
            table.addColumn(addressColumn, "Address");
    
            // Create a data provider.
            ListDataProvider<Contact> dataProvider = new ListDataProvider<Contact>();
    
            // Connect the table to the data provider.
            dataProvider.addDataDisplay(table);
    
            // Add the data to the data provider, which automatically pushes it to the
            // widget.
            final List<Contact> list = dataProvider.getList();
            for (Contact contact : CONTACTS) {
              list.add(contact);
            }
    
            // We know that the data is sorted alphabetically by default.
            table.getColumnSortList().push(nameColumn);
    
            Button add = new Button("Add Row");
            add.addClickHandler(new ClickHandler() {
    
                @Override
                public void onClick(ClickEvent event) {
                    list.add(new Contact(Integer.toString(table.getRowCount()),Integer.toString(table.getRowCount())));
                }
            });
    
    
            // Add it to the root panel.
            RootPanel.get().add(table);
            RootPanel.get().add(add);
    
          }
    
    
    
    }
    

    Hopefully this will help I am not sure what you mean by total though anything can be added to that final field in the Guise of a contact even though it isnt neccessarily one , the better approach would be to use Generics for the data provider but this will achieve same effects with minimal code

    0 讨论(0)
提交回复
热议问题