我有一个 ice:dataTable
,其中一列中有一个 ice:rowSelector
,另一列中有一个 ice:selectBooleanCheckbox
。 ice:rowSelector
将 toggleOnInput
设置为 false。
如果我选择一行中的一个复选框(单击),则不会触发 clickAction(因为 toggleOnInput
- 到目前为止,一切都很好)。
但是,如果我在此之后单击同一页面上的按钮,无论它们具有什么操作绑定(bind),都会触发 rowSelector 的 clickAction
。为什么?
有什么办法可以防止这种情况发生吗?
这是我的页面定义:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<f:view>
<ice:form>
<ice:commandButton value="Test" />
<ice:dataTable id="dataTable"
value="#{PageBean.data}"
var="entity">
<ice:column>
<ice:selectBooleanCheckbox />
</ice:column>
<ice:column>
<ice:outputText value="#{entity.name}" />
<ice:rowSelector clickAction="#{PageBean.clickAction}" toggleOnInput="false" />
</ice:column>
</ice:dataTable>
</ice:form>
</f:view>
</html>
最佳答案
可以尝试为页面中的其他按钮和数据表制作不同的表单,我们不应该有嵌套表单,但可以有多个表单
此外,如果您要执行单击相应行时调用的 Action 方法,我建议使用 selectionAction
属性。
希望对您有帮助
关于java - 如何防止在使用页面上的任何按钮时触发 rowSelector 的 clickAction 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10687455/