GWT 2.5 RC 中引入了 CellTableBuilder API,但尚未提供全面的文档。是否有使用 CellTableBuilder 实现按需自定义行构建的教程\示例?到目前为止我发现的唯一例子就是这个http://showcase2.jlabanca-testing.appspot.com/#!CwCustomDataGrid http://showcase2.jlabanca-testing.appspot.com/#!CwCustomDataGrid但这对我来说很困惑。
因此,我的目标是创建包含小部件的额外行,该小部件提供有关表中单击行的详细信息。
我已经找到适合这个问题的解决方案。这是代码示例:
public class CustomCellTableBuilder extends AbstractCellTableBuilder<Object>{
//here go fields, ctor etc.
//ids of elements which details we are going to show
private Set elements;
@Override
protected void buildRowImpl(Object rowValue, int absRowIndex){
//building main rows logic
if(elements.contains(absRowIndex)){
buildExtraRow(absRowIndex, rowValue);
elements.add(absRowIndex);
}
}
private void buildExtraRow(int index, Object rowValue){
TableRowBuilder row = startRow();
TableCellBuilder td = row.startTD().colSpan(getColumns().size());
DivBuilder div = td.startDiv();
Widget widget = new Widget();
//update widget state and appearance here depending on rowValue
div.html(SafeHtmlUtils.fromTrustedString(widget.getElement().getInnerHTML()));
div.end();
td.endTD();
row.endTR();
}}
应该提到的是,当您处理某些导致出现额外行的事件时,您应该在附加到 TableBuilder 的 CellTable 上调用 redrawRaw(rowIndex) 。在此调用之前,需要将目标行 ID 添加到元素 Set 中。
希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)