我有一个包含4列的rich:dataTable。
第一个是selectBooleanCheckBox,它向bean中激发一个名为"CheckEvent“的事件(仅举个例子)。
同时,dataTable还支持onRowClick事件,该事件在bean上触发"onRowClick“。
我面临的问题是,当我单击第一列( check )时,onRowClick也会触发。在这种情况下,这肯定是一个问题:如果一个行选中了检查,而我只想取消选中它,onRowClick就会突出显示该行,这是我不想要的行为。
我试图在其他三个oOnRowClick中定义rich:columns事件,但是我实现的是没有什么;事件甚至不触发,所以datatable没有onRowClick。
试图通过bean实现逻辑也不起作用,因为我不知道输入onRowClick()方法时会推送哪个列。
我真的很想这么做。如能提供任何帮助,将不胜感激。
发布于 2016-04-08 13:52:51
onrowclick将onclick添加到表行,如果不希望它触发,则必须防止复选框上的单击事件冒泡到该行,例如:
<h:selectBooleanCheckbox onclick="event.stopPropagation()" … />发布于 2018-04-24 14:38:28
我可以看到,这个<h:selectBooleanCheckbox onclick="event.stopPropagation()" … />可以很好地解决QA与selectBooleanCheckbox之间的问题。
如果不应该对onclick事件作出反应的列包含一个可点击的图标,那么类似的内容会起作用吗?见下面的例子:
<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>https://stackoverflow.com/questions/36499942
复制相似问题