造型Wicket datetimefield

时间:2011-11-28 14:24:42

标签: css wicket

我正在使用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">&nbsp;
        <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">&#160;:</span>
    <input type="text" wicket:id="minutes" size="2" value="17" name="creationDate:minutes"/>
</span>

我希望做的是分别获取组件,然后向其添加styleclass属性。有什么方法可以做到吗?

2 个答案:

答案 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,这是我添加类详细信息的地方。