Wicket - 您可以为转发器内的元素指定标记ID吗?

时间:2011-11-15 15:33:44

标签: wicket

由于随机标记ID,我很难使用Selenium测试我们的Wicket应用程序。

对于个别元素,我可以使用abc.setOutputMarkupId(true).setMarkupId("myId") 明确设置标记ID 但是如果使用转发器(如ListView)动态添加元素会怎样?有没有办法指定标记ID序列应该是什么样的?

2 个答案:

答案 0 :(得分:1)

那么,你不能用ListView做同样的事情吗?如果您自己进行ListView实施,然后使用populateItem(final ListItem<?> listItem)方法,则执行相应的listItem

listItem.setOutputMarkupId(true); // write id attribute of element to html
listItem.setMarkupId("id"+i);

其中i是你在ListView的构造函数中初始化的索引吗?

答案 1 :(得分:1)

安德烈说这可能但很危险。 setMarkupId doc:

  
    

检索在标记中表示此组件的ID。这是通过调用显式设置的id属性     org.apache.wicket.Component.setMarkupId(java.lang.String),id     标记中定义的属性,或自动生成的id - in     那个命令。如果未设置显式ID,则此函数将生成id     在页面中唯一的值。这是首选方式     没有碰撞的机会。     http://www.kiwidoc.com/java/l/p/org.apache.wicket/wicket/1.4.0/p/org.apache.wicket/c/Component#top

  

并且您也无法使用getMarkupId()

获取标记ID