1

我们有一个使用RequestFactoryEditor FrameworkUiBinder的 GWT 项目。使用 RequestFactory 从服务器加载数据后,我们会根据数据中的状态确定页面是否应为只读。

此时我想渲染一个input小部件或一个label(如果是只读的)。

理想情况下,我会根据数据交换小部件的渲染,但是在加载数据时,渲染端看起来已经完成(基于我已经完成的调试)。

我不想在页面上有两个小部件,其中一个是隐藏的。这已经给我们带来了问题,隐藏的数据覆盖了其他数据,更不用说 DOM 中小部件数量的两倍了。

到目前为止,一个想法是在收到数据时删除FromParent()。有一个更好的方法吗?

谢谢。

4

1 回答 1

1

我的第一个想法是...

仅适用于输入字段和文本区域。如果您有下拉菜单、单选框或复选框,则它不起作用...

...通过css设置输入字段的样式,使其看起来不像一个(删除边框和背景颜色应该这样做),如果它是只读的,则禁用它。如果它不是只读的,则删除 css 类,因此它看起来像一个普通的输入字段并使其可编辑。

像这样的东西:

<style>
.label {
    background-color: white;
    border: 0px;
    color: black;
}
</style>

<input type="text" class="label" disabled value="Read only data"/>
<input type="text" value="Editable data"/>

另一个想法是..

我使用 GWT 已经有一段时间了。但是,您不能在获取数据的 rcp 调用的回调中添加小部件吗?

像这样的东西:

在 ui Binder 中,您只有数据的容器。

在一种方法中,您将数据绘制为容器中的标签或输入字段,具体取决于您获得的数据。您在数据请求的回调中调用此方法。

于 2012-06-08T07:46:05.890 回答