我使用的是来自Richfaces 4的extendedDataTable。我想在用户单击一行中的元素时显示它的详细信息页面。因此,我添加了像
这样的内容onrowclick="showDetails(#{item.id})"
到表中。这将触发相应的<a4j:jsFunction/>
标记。
但是,其中一列中有一个commandLink(用于切换到详细信息的编辑视图)。该链接适用于基于webkit的浏览器(Chrome/Safari)。但是IE和firefox只执行行上的onclick。命令链接在那里不起作用
是否有可能只设置一个oncolumnclick或不包含commandlink的列?我还没有找到一种方法来添加一个onclick处理程序到特定的列(我使用rich:column的列)
或者是否有更好/更干净/更好的方式来实现"单击行某处显示详细信息,单击最后一列中的链接以显示编辑视图"-我所追求的行为?
试着把这个放到你的commandButton
onclick="Event.stop(event||window.event)"
我目前的变通HACK是不使用onrowclick
,而是添加一个styleClass="clickable"
到我的所有列,除了一个链接。在第一列中,我添加了以下内容:
<h:outputText value="#{item.id}" style="display: none;" styleClass="id"/>
然后在表之后,我使用以下jQuery:
<rich:jQuery selector=".myTable td.clickable" query="live('click', function(event) {
showDetails($(this).parent().children().children('.id').text());
});"/>
我真的不喜欢这个解决方案,但到目前为止它工作得很好。我仍然对更好的解决方案持开放态度:)