2017-05-30 49 views
1

我是新來的檢票口,請有人幫我一個想法。我有一個邏輯圍繞一個複選框來顯示或不顯示。 問題: 當不顯示覆選框的邏輯打開時,通過在代碼中動態添加顯示:none到複選框元素,由於td正好位於複選框之外,因此存在空白區域。如何訪問沒有檢票的HTML元素:ID

我的HTML看起來像

<span wicket:id="checkgroup"> 
<table> 
<tr wicket:id="srow" > 
<td><input type="checkbox" wicket:id="scheck"/></td> 
<td><img wicket:id="sicon"></img></td> 
</tr> 
</table> 
</span> 

所以在代碼中,我有,如果增加一個顯示else邏輯:沒有檢查框元素,從它看起來像下面

<span wicket:id="checkgroup"> 
<table> 
<tr wicket:id="srow" > 
<td><input type="checkbox" wicket:id="scheck" style="display:none"/></td> 
<td><img wicket:id="sicon"></img></td> 
</tr> 
</table> 
</span>      

final CheckGroup<Scope> checkGroup = new CheckGroup<>("checkGroup", 
new ArrayList<>());  
ListView<Scope> listView = new ListView<Scope> 
("srow", sList); 
@Override 
protected void populateItem(final ListItem<S> item) 
{ 
    Check<S> check = new Check<>("scheck", item.getModel(), checkGroup); 
    if(defaultscope) 
    { 
    check.add(new AttributeModifier("style","display:none")); 
    } 
    item.add(check); 
} 
視圖刪除複選框

所以現在我的複選框消失了,但是周圍的td保持不變,並在顯示中產生空白區域。

關於如何解決此問題的任何想法。

謝謝。

+1

移動顯示:無到TD,如果你想讓它隱藏,以及。 – Aaron

+0

但我沒有一個檢票口:它的ID訪問它在Java端。 – Anita

+0

https://stackoverflow.com/questions/6137269/wicket-component-hierarchy-getparent我認爲這會爲你做。 getParent() - 你必須稍微研究一下 - 文檔中可能會有解釋。 – Aaron

回答

2

如果引用的子項不存在,則可以使用<wicket:enclosure>刪除html。 wicket enclosure.

你在populateItem代碼看起來是這樣的:

Check<S> check = new Check<>("scheck", item.getModel(), checkGroup); 
    if(defaultscope) 
    { 
    check.setVisible(false); 
    } 
    item.add(check); 

您的標記應該是這樣的:

<tr wicket:id="srow" > 
<wicket:enclosure> 
    <td><input type="checkbox" wicket:id="scheck"/></td> 
</wicket:enclosure> 
<td><img wicket:id="sicon"></img></td> 
</tr> 
+0

剛剛嘗試將它封裝在它工作的WebMarkupContainer中。也會嘗試這個圈地..謝謝你幫助我。 – Anita

+0

是的。也一樣。非常感謝。 – Anita