2012-06-08 42 views
1

我們使用RequestFactory編輯框架UiBinder的 GWT項目如何換出widget元素。一旦使用RequestFactory從服務器加載數據,我們將根據數據中的狀態確定頁面是否應該是隻讀的。基於數據

此時我想渲染一個input小部件或label(如果是隻讀)。

理想情況下,我會根據數據替換窗口小部件的渲染,但是在數據加載時它看起來像渲染端已完成(基於我已完成的調試)。

我不想在頁面上有一個隱藏的小部件。這導致我們已經將隱藏的數據覆蓋另一個的問題,更不用說DOM中的窗口小部件數量的兩倍了。

到目前爲止的一個想法是在收到數據時removeFromParent()。有一個更好的方法嗎?

謝謝。

回答

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活頁夾,你只需要對數據的容器。

在一種方法中,根據獲取的數據在容器中繪製數據作爲標籤或輸入字段。您在數據請求的回調中調用此方法。

+0

我已經對輸入進行了樣式設置,因此它們顯示爲文本,但對於下拉菜單,複選框或單選按鈕不起作用。我看到你對第二個想法的看法。看起來像一個有效的方法。我會放棄併發布一些代碼。 – Damo

+0

是的你的權利,我的第一個想法只適用於文本輸入字段和textareas。我編輯了我的帖子。 – SCBoy