0

我在一列中ice:dataTable有一个,在另一列中有一个。已设置为假。 如果我在一行中选择一个复选框(单击),则不会触发 clickAction(因为- 到目前为止,非常好)。 但是,如果我在此之后单击同一页面上的按钮,无论它们具有什么操作绑定,都会触发 rowSelector。为什么? 有什么想法可以防止这种情况吗?ice:rowSelectorice:selectBooleanCheckboxice:rowSelectortoggleOnInput
toggleOnInput
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>
4

2 回答 2

1

您可以尝试为页面中的其他按钮和数据表中的其他按钮制作不同的表单,我们不应该有嵌套表单但可以有多个表单

selectionAction另外,如果您在单击相应行时执行要调用的 Action 方法,我建议使用属性。

希望这可以帮助你

于 2012-05-30T06:14:30.820 回答
0

我可以看到您正在使用一个命令按钮,该按钮指定为:

ice:commandButton

The ice:commandButton tag displays a button which can be linked to an action in 
a backing bean method by specifying the bean and the method in the actionListener
attribute. The button can be replaced by an image by specifying the URL of the  
image in the image attribute.

我清楚地看到它由 bean 方法支持。彻底检查您的代码。

于 2012-05-21T15:11:09.497 回答