我正在使用 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
属性。有什么方法可以做到这一点?
最佳答案
您可以使用父类(super class) Component
中定义的方法 public Component add(final Behavior... behaviors)
。
您正在寻找的是 AttributeAppender
行为,您可以使用它添加 CSS id/classes 或您想要附加的所有其他属性。
请参阅 API:http://wicket.apache.org/apidocs/1.5/org/apache/wicket/behavior/AttributeAppender.html
更新
我刚刚快速浏览了 DateTimeField
的源代码。遗憾的是,您无法单独访问这些组件。
我可以想到两种方式来设置组件的样式:
- 您可以将整个
DateTimeField
放在自定义div
中,然后,例如,通过级联的 css 选择器访问文本字段。 (例如#myDiv 输入) - 或者您使用现有的源代码创建您自己的
DateTimeField
类,并将您的 css id/类放在那里。
关于css - 样式 Wicket 口日期时间字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297264/