2

我的类属性有两个 CSS 类值。HTML 开头是这样的:

<input type="button" wicket:id="rowButton" class="jelly-button greenGradient"/>

我想动态地将其更改为:

<input type="button" wicket:id="rowButton" class="jelly-button redGradient"/>

目前我正在这样做:

component.add(new SimpleAttributeModifier("class", "jelly-button redGradient"));

在 Wicket 中执行此操作的最佳方法是什么?必须有比我上面所做的更“正确”的方法来做到这一点。

4

2 回答 2

8

除了使用带有固定文本的属性修饰符,您还可以使用带有从模型中检索到的文本的属性附加器。要更改类,只需更改模型的值。例如:

Model<String> gradientModel = new Model<String>("greenGradient");

...

component.add(AttributeModifier.append("class", gradientModel));

在标记中只有

<input type="button" wicket:id="rowButton" class="jelly-button"/>

然后什么时候改变梯度使用

gradientModel.setObject("redGradient");

或者

gradientModel.setObject("greenGradient");
于 2012-09-11T19:22:07.380 回答
0

下面javadoc中的示例很好地解释了它 http://www.jarvana.com/jarvana/view/org/apache/wicket/wicket-core/1.5.2/wicket-core-1.5.2-javadoc.jar!/ org/apache/wicket/behavior/AttributeAppender.html

于 2012-09-14T06:49:18.533 回答