1

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

下面是我的 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

4

1 回答 1

-1

试着把你的桌子摆成表格。

你也可以让它更方便:

<p:commandButton id="submit" ... disabled="#{userPreferencesBean.selectedStudents==null}"/>
于 2013-09-11T15:53:06.433 回答