我有rich:dataTable
,其中包含4列。
第一个是selectBooleanCheckBox
,它会触发一个名为" CheckEvent"的事件。 (仅用于示例)进入bean。
同时,dataTable还支持onRowClick
事件,该事件触发" onRowClick"在豆上。
我面临的问题是,当我点击第一列(检查一列)时,onRowClick
也会触发。在这种情况下,这肯定是一个问题:如果一行选中了支票并且我只是想取消选择它,onRowClick
会突出显示该行,这是我不想要的行为。
我试图在其他三个oOnRowClick
内定义rich:columns
事件,但我这样做的结果是什么;该事件甚至不会触发,因此数据表没有onRowClick
。
尝试通过bean创建逻辑也不起作用,因为当我输入onRowClick()
方法时,我不知道哪个列被推送。
我真的很绝望。任何帮助都将不胜感激。
答案 0 :(得分:1)
我可以看到这一点
<h:selectBooleanCheckbox onclick="event.stopPropagation()" … />
通过selectBooleanCheckbox
解决QA的问题非常有效。
如果不应该对onclick事件做出反应的Column包含一个可点击的Icon,它应该执行不同的功能,那会有类似的工作吗?请参阅以下示例:
<rich:panel headerClass="panelHeader" styleClass="panel">
<f:facet name="header">Header</f:facet>
<rich:dataTable id="myTable" value="#{myModel}" var="k">
<a4j:support event="onRowClick" action="#{myAction.selectItem(k, facesContext.viewRoot.viewId)}"
reRender="myTable"/>
<rich:column>
<f:facet name="header">
<h:outputText value="Normal Column - should be clickable"/>
</f:facet>
<h:outputText value="#{k.name}"/>
</rich:column>
<rich:column >
<f:facet name="header">
<h:outputText value="Only Click on Icon should react to Mouseclick"/>
</f:facet>
<s:graphicImage value="/img/bin_closed.gif">
<a4j:support event="onclick"
action="#{myAction.deleteItem(k)}"
reRender="myTable"
ajaxSingle="true" limitToList="true"
onsubmit="if(!confirm('Really?')) { return false; }" />/>
</s:graphicImage>
</rich:column>
</rich:dataTable>
</rich:panel>