我正在使用Wicket的DateTimeField组件,但我正在努力应用任何样式。 HTML代码段如下:
<span id="creationDate" wicket:id="creationDate" />
和随附的Java是:
add(new DateTimeField("creationDate", new PropertyModel<Date>(this, "creationDate")));
哪个有效,但产生了这个(我已经整理过了):
<span id="creationDate" wicket:id="creationDate">
<wicket:panel xmlns:wicket="http://wicket.apache.org">
<span style="white-space: nowrap;">
<input type="text" wicket:id="date" size="12" value="28/11/11" name="creationDate:date" id="date1f"/>
<span class="yui-skin-sam">
<span style="display:none;position:absolute;z-index: 99999;" id="date1fDp"></span>
<img style="cursor: pointer; border: none;" id="date1fIcon" src="wicket/resource/org.apache.wicket.extensions.yui.calendar.DatePicker/icon1-ver-1322148000242.gif" alt="" title=""/>
</span>
<input type="text" wicket:id="hours" size="2" value="14" name="creationDate:hours"/>
<span wicket:id="hoursSeparator"> :</span>
<input type="text" wicket:id="minutes" size="2" value="17" name="creationDate:minutes"/>
</span>
我希望做的是分别获取组件,然后向其添加style
或class
属性。有什么方法可以做到吗?
答案 0 :(得分:1)
您可以使用超类public Component add(final Behavior... behaviors)
中定义的方法Component
。
您正在寻找的是行为AttributeAppender
,您可以使用该行为添加CSS ID /类或您要追加的所有其他属性。
请参阅API:http://wicket.apache.org/apidocs/1.5/org/apache/wicket/behavior/AttributeAppender.html
<强>更新强>
我只是快速浏览了DateTimeField
的源代码。遗憾的是,您无法单独访问这些组件。
我可以考虑两种方式来设置组件的样式:
DateTimeField
置于自定义div
内,然后通过级联css选择器访问文本字段。 (例如#myDiv输入)DateTimeField
类,并将您的css id / classes放在那里。答案 1 :(得分:1)
事实证明,您可以覆盖HTML,在这种情况下,可以替换DateTimeField.html
包中的org.apache.wicket.extensions.yui.calendar
。然后,这将替换默认的HTML,这是我添加类详细信息的地方。