我有一个表,用户单击复选框以选择一行。
我想让用户在感兴趣的行上计时,并用彩色背景填充该行。我如何在GWT中解决这个问题?
编辑:我想知道如何使用FlexTable实现这一目标。非常感谢你
答案 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);
}
}