根据<p:column selection =“multiple”> </p:column> </p:datatable> </p:commandbutton>的更改,在<p:datatable>的页脚中启用/禁用<p:commandbutton>

时间:2013-09-11 12:19:49

标签: jsf-2 primefaces facelets

我有一个数据表,我正在显示员工列表。在数据表的末尾,我有一个命令按钮。现在,如果用户选择数据表中的任何复选框,我希望启用我的命令按钮。最初,命令按钮被禁用。

下面是我的index.xhtml页面

<p:dataTable value="#{userPreferencesBean.studentDataModel}"
                var="studentDetails" emptyMessage="No Student found."
                selection="#{userPreferencesBean.selectedStudents}">
                <f:facet name="header">
                    List of Students
                </f:facet>

                <p:ajax event="rowSelect" update="submit" listener="#{userPreferencesBean.onRowSelect}"/>
                <p:ajax event="rowUnselect" update="submit" listener="#{userPreferencesBean.onRowSelect}"/>

                <p:column selectionMode="multiple" style="width:2%" />

                //All the columns 

                <f:facet name="footer">
                    <p:commandButton id="submit" value="Save Preferences"
                        icon="ui-icon-disk" style="float:right;"
                        action="#{userPreferencesBean.savePreferredInterfaces}"
                        update=":#{p:component('selectedInterfaceDetails')}" 
                        disabled="#{not userPreferencesBean.hasPreferenceChanged eq false}"/>
                </f:facet>
            </p:dataTable>

以下是我的支持bean:

@ManagedBean
@SessionScoped
public class UserPreferencesBean implements Serializable {

    private boolean hasPreferenceChanged = false;

    public void onRowSelect(SelectEvent event) {
        this.setHasPreferenceChanged(true);
    }

    public boolean isHasPreferenceChanged() {
        return hasPreferenceChanged;
    }

    public void setHasPreferenceChanged(boolean hasPreferenceChanged) {
        this.hasPreferenceChanged = hasPreferenceChanged;
    }

我期待的是,一旦我选择一行,我的提交按钮应该被启用。但它没有发生。你能帮我理解我做错了吗?感谢。

关于, Sudipta Deb

1 个答案:

答案 0 :(得分:-1)

尝试将表格放入表格。

此外,你可以使它更方便:

<p:commandButton id="submit" ... disabled="#{userPreferencesBean.selectedStudents==null}"/>