从动态更新的数据中删除元素 table

Delete elements from a dynamically updated data table

我有一个 Richfaces 1.2 数据表,它使用 a4j:poll 请求每 2 秒更新一次。它向服务器发送请求并重新呈现 table 添加新元素并更改现有元素的状态。

最重要的是,我希望能够使用按钮从 table 中删除行,但问题是可以发送删除请求(按钮)和更新请求(轮询) 同时,导致并发调用异常

关于如何保持 table 动态更新并能够同时发送删除请求的任何想法?我试图做的是在单击删除按钮时阻止轮询请求,发出删除请求,然后返回发送请求以更新 table.

可能有请求队列?

这是代码的简化片段:

    <a:form id="orders">
            
            <a:poll id="pollUpdateOrders" 
                interval="2000"
                reRender="outputPanelOrders, pollUpdateOrders"
                action="#{bean.getOrders()}" />
            
            <a:outputPanel id="outputPanelOrders">
                
                <r:dataTable id="tabelOrders" 
                    title="Orders" var="orders"
                    value="#{bean.getOrders()}" >
                    
                        <r:column>
                            <f:facet name="header">
                                <h:outputText value="Code" />
                            </f:facet>
                            <h:outputText
                                value="#{order.code}" />
                        </r:column>
                
                        <r:column>
                            <f:facet name="header">
                                <h:outputText value="Description" />
                            </f:facet>
                            <h:outputText
                                value="#{order.description}" />
                        </r:column>

                        <r:column>
                            <a:commandLink id="deleteOrder"
                                action="#{bean.deletOrder(order)}" />
                        </r:column>
                </r:dataTable>
            </a:outputPanel>
    </a:form>

我假设您指的是带有 JSF 1.2 的 RichFaces 3;你应该能够像这样链接操作(使用 a4j:jsFunction):

  • onclick - 禁用轮询
  • oncomplete - 删除行
  • oncomplete - 启用轮询