【问题标题】:Datatable not refreshing with ajax数据表不使用 ajax 刷新
【发布时间】:2013-07-02 14:45:31
【问题描述】:

我有两个日历控件和一个命令按钮。基本上我想给出一个日期范围来从数据库中选择数据,然后当我按下命令按钮时,数据表显示在对话框中,问题是 java bean 类正在工作它正在加载我想要的确切数据,但数据表不刷新命令按钮单击 我的代码已给出;

<h:form id="form" >        
    <p:calendar value="#{calendarBean.dateFrom}" id="calFrom" pattern="yyyy-mm-dd">  
        <p:ajax event="dateSelect" listener="#{calendarBean.handleDateSelectFrom}" />  
    </p:calendar>  
    <p:calendar value="#{calendarBean.dateTo}"  id="calTo" pattern="yyyy-mm-dd">  
        <p:ajax event="dateSelect"  listener="#{calendarBean.handleDateSelectTo}" />  
    </p:calendar>  
    <p:commandButton value="Submit" action="#{calendarBean.submit()}" update="fTable" onclick="aDlg.show()">
        <f:ajax render=":form:fTable" execute="@form"></f:ajax>
    </p:commandButton>

    <p:dialog id="aDialog" header="Filter List" widgetVar="aDlg"
                            modal="true" showEffect="explode"
                            hideEffect="explode" >                                      
    <p:panel id="pnl">
        <p:dataTable id="fTable" value="#{calenderBean.list}" var="row" >
            <p:column headerText="ID">
                <h:outputText value="#{row.ID}"/>
            </p:column>
            <p:column headerText="Name">
                <h:outputText value="#{row.Name}"/>
            </p:column>
            <p:column headerText="Time">
                <h:outputText value="#{row.Time}"/>
            </p:column>
            <p:column headerText="User">
                <h:outputText value="#{row.userName}"/>
            </p:column>
        </p:dataTable>
        </p:panel>                  
    </p:dialog>
</h:form>

请就这个问题指导我

【问题讨论】:

    标签: ajax jsf-2 primefaces


    【解决方案1】:

    首先要做的是删除f:ajax,它不适用于Primefaces。 update 属性也应该做所有事情。
    这就是说,我的代码与您的代码完全相同。
    如果删除 f:ajax 不起作用,请尝试检查您的托管 bean 范围(可能是请求范围,并且每次请求都会重新初始化数据)

    【讨论】:

    • 我已经删除了 f:ajax,我的托管 bean 范围是 sessionscope,但仍然有同样的问题
    • Thanx @Laabidi 我已经解决了这个问题.. 问题是我还没有为填充数据表的列表编写 setter 和 getter。无论如何感谢您的时间
    【解决方案2】:

    尝试更新对话框。 update="fTable"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多