Google Web Toolkit(GWT)での作業私はCellListを使用して、料金表のリストの詳細をレンダリングしています(CompositeCellを使用して、自分のカスタムセルの横にCheckBoxCellを表示しています)。
関税の長さ(12、18、24、36か月など)でリストをフィルタリングしたい。リストの一番上に各料金の長さのチェックボックスを表示し、ユーザーがチェックボックスをオフにしてから再度チェックしたときに、必要に応じてdataProviderを更新したいと思います。
料金の長さのセットは事前にはわかりません。ページがレンダリングされるときに結果セットから抽出されます。2つ(2つのチェックボックスが必要)だけである可能性がありますが、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);
}
ここで正しい方向に進んでいるかどうかはわかりませんが、各ボックスが同じグループの一部になっています(同じ名前です)。これを使用して、次の場合に呼び出されるハンドラーを追加します。ボックスがオンまたはオフになっている場合は、ボックスID(料金表の長さを含む)をその関数に渡します。
これがあまり混乱して書かれていないことを願っています。感謝します。