在 Google Web Toolkit (GWT) 中工作 我正在使用 CellList 来呈现关税列表的详细信息(使用 CompositeCell 在我自己的自定义单元格旁边显示 CheckBoxCell)。
我想按关税长度(12、18、24、36 个月等)过滤列表。我想在列表顶部为每个关税长度呈现一个复选框,并在用户取消选中并重新选中一个框时根据需要更新 dataProvider。
我事先不知道关税长度的集合,它们将在页面呈现时从结果集中提取。可能只有两个(需要两个复选框),但可能有 10 个(需要 10 个复选框) - 我只想根据需要为每个复选框呈现一个复选框。
所以不知何故,我需要将一个 int 值与每个复选框相关联,然后将该 int 传递给一个函数,该函数通过删除所有匹配的关税来更新列表。我只是不确定如何为复选框添加处理程序以及如何获取该特定框的值。
这就是我的想法:
// panel to hold boxes
private Panel contractLengthPanel = new HorizontalPanel();
textPanel2.add(contractLengthPanel);
// create a set of the terms, by looping the result set
Set<String> contractTerms = new HashSet<String>();
for(ElecTariff tariff : tariffs)
{
contractTerms.add(Integer.toString(tariff.getContractLength()));
}
// loop that set, creating a CheckBox for each value
for(String term : contractTerms)
{
CheckBox box = new CheckBox(term + " Months");
// set all boxes with the same name, and a unique id
box.getElement().setAttribute("name", "termBoxes");
box.getElement().setAttribute("id", "termBox" + term);
contractLengthPanel.add(box);
}
现在我不确定我在这里是否正确,但现在我将每个框作为同一组的一部分(它们具有相同的名称)我想用它来添加一个处理程序,当一个box 被选中或未选中,将 box id(包含关税长度)传递给该函数。
我希望这不是写得太混乱。帮助表示赞赏。