我是GWT新手。我知道tablename.removeColumn(columnname)可用于删除列,但不是删除我想要禁用它。任何人都可以帮忙 thnx提前!
答案 0 :(得分:0)
有一些方法可以做到这一点,但一个简单而干净的方法是:
public static class CustomTextInputCell extends TextInputCell {
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
String url = Window.Location.getHref();
boolean isEditable = url.contains("xyz");
if (isEditable) //Condition if editable or not
super.render(context, value, sb);
else if (value != null) {
sb.appendEscaped(value);
}
}
}
每次渲染此单元格时都会调用render方法。因此,每次检查是否满足条件时都会启用。 这使您可以保留可编辑单元格的所有功能,但在满足条件时可以轻松禁用它。
你像这样使用它
Column<YOUR_OBJECT_HERE, String> column = new Column<YOUR_OBJECT_HERE, String>(new CustomTextInputCell());
cellTable.addColumn(column , "YOUR_HEADER_HERE");
答案 1 :(得分:0)
我最终创建了一个包含我想要的列的新组件,并根据url调用该组件
String url = Window.Location.getHref();
boolean value = url.contains("xyz");
if(value)
{
component.setEnable(true);
}
else{
componentprevious.setEnable(true);
}
enter code here