如何根据数据交换小部件元素

时间:2012-06-08 04:52:21

标签: java google-app-engine gwt requestfactory

我们有一个使用 RequestFactory 编辑框架 UiBinder 的GWT项目。使用RequestFactory从服务器加载数据后,我们根据数据中的状态确定页面是否应该是只读的。

此时我想呈现input小部件或label(如果只读)。

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

我不希望页面上有两个小部件,其中一个隐藏。这已经导致我们已经出现问题,隐藏的数据覆盖了另一个,更不用说DOM中小部件数量的两倍的影响。

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

感谢。

1 个答案:

答案 0 :(得分:1)

我的第一个想法是......

仅适用于输入字段和textareas。如果您有下拉列表,放射线框或复选框,则它不起作用......

...通过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中,您只需拥有数据容器。

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