(GWT)如何在表格中的选定行上填充颜色?

时间:2011-07-18 18:18:17

标签: gwt

我有一个表,用户单击复选框以选择一行。

我想让用户在感兴趣的行上计时,并用彩色背景填充该行。我如何在GWT中解决这个问题?

编辑:我想知道如何使用FlexTable实现这一目标。非常感谢你

2 个答案:

答案 0 :(得分:1)

要在单击操作上操作行样式,请向FlexTable对象添加ClickHandler。在onClick(ClickEvent)中,您可以通过FlexTable方法getCellForEvent(ClickEvent)单击该单元格。返回的单元格包含有关单击的行(和列)编号的信息。通过getRowFormatter().getElement(),您可以获取行的元素并为行添加样式名,添加颜色或直接在代码中设置代码中行的颜色。

答案 1 :(得分:0)

也许你应该使用一个celltable。 以下是一个例子: http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable

在celltables中,单击一个单元格时,整个行都会突出显示。您可以根据需要使用css更改突出显示的颜色。

请尝试以下代码:

public class CellTableExample implements EntryPoint {

    private static class Contact {
        private String address; 
        private String name;

        public Contact(String name, String address) {
            super();
            this.address = address; 
            this.name = name; 
        } 
    }

    // The list of data to display.
      private static List<Contact> CONTACTS = Arrays.asList(
        new Contact("John", "123 Fourth Road asdf asdf asdfasdf"),
        new Contact("Mary", "222 Lancer Lane")

      );

    @Override
    public void onModuleLoad() {
        CellTable<Contact> table = new CellTable<Contact>(); 

        //address column
        TextColumn<Contact> addressColumn = new TextColumn<Contact>(){
            @Override
            public String getValue(Contact contact) {
                return contact.address;
            }
        };

        //name column
        TextColumn<Contact> nameColumn = new TextColumn<Contact>(){
            @Override
            public String getValue(Contact contact) {
                return contact.name;
            }
        };

        // Add the columns.
        table.addColumn(nameColumn, "Name");
        table.addColumn(addressColumn, "Address");

        table.setRowCount(CONTACTS.size(), true);
        table.setRowData(0, CONTACTS);

        RootPanel.get().add(table); 
    }

}