java - 如何防止在使用页面上的任何按钮时触发 rowSelector 的 clickAction 方法?

标签 java jsf facelets icefaces

我有一个 ice:dataTable,其中一列中有一个 ice:rowSelector,另一列中有一个 ice:selectBooleanCheckboxice:rowSelectortoggleOnInput 设置为 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/

相关文章:

java - org.hibernate.hql.ast.QuerySyntaxException : table is not mapped

css - 按钮在一行中 h :panelGrid

java - guava:Multimap 从集合中获取对象

java - readObject() 与 readResolve() 恢复 transient 字段

Java if 语句被跳过

java - 可用的 JSF MVC 组件

java - 如何使错误页面 (http 500) 在 IceFaces 中工作?

jsf - 如何从 Facelets 和 web.xml 引用 JAR 中的 Facelets taglib?

jsf - JSF使用原始/原始XHTML/XML/EL源而不是呈现的HTML输出返回空白/未分析的页面

xml - 用户界面 :insert not being replaced by ui:define