我们有一个使用 RequestFactory ,编辑框架和 UiBinder 的GWT项目。使用RequestFactory从服务器加载数据后,我们根据数据中的状态确定页面是否应该是只读的。
此时我想呈现input
小部件或label
(如果只读)。
理想情况下,我会根据数据更换窗口小部件的渲染,但是在加载数据时,它看起来像渲染端已经完成(基于我已经完成的调试)。
我不希望页面上有两个小部件,其中一个隐藏。这已经导致我们已经出现问题,隐藏的数据覆盖了另一个,更不用说DOM中小部件数量的两倍的影响。
到目前为止,一个想法是在收到数据时删除FLALParent()。有更好的方法吗?
感谢。
答案 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中,您只需拥有数据容器。
在方法中,您可以在容器中绘制数据作为标签或输入字段,具体取决于您获得的数据。您可以在数据请求的回调中调用此方法。